Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP使用表单中的数据值更新数据库_Php_Wordpress_Forms - Fatal编程技术网

PHP使用表单中的数据值更新数据库

PHP使用表单中的数据值更新数据库,php,wordpress,forms,Php,Wordpress,Forms,我正在构建一个wordpress插件,在页面上显示表单。表单中是一个动态填充的歌手下拉列表(singers是一种自定义帖子类型,管理员在其中输入歌手姓名和歌手性别-作为变量存储在wp_Posteta“singer_name”和“singer_gender”中) 在表格中,我在选项中添加了singer性别作为数据变量,例如: <select name="about_performance_lead_singer" id="about_performance_lead_singer" valu

我正在构建一个wordpress插件,在页面上显示表单。表单中是一个动态填充的歌手下拉列表(singers是一种自定义帖子类型,管理员在其中输入歌手姓名和歌手性别-作为变量存储在wp_Posteta“singer_name”和“singer_gender”中)

在表格中,我在选项中添加了singer性别作为数据变量,例如:

<select name="about_performance_lead_singer" id="about_performance_lead_singer" value="">

<option disabled="" selected=""> -- Choose a singer -- </option>
<option data-gender="female" value="Toni">Toni</option>
<option data-gender="male" value="Jack">Jack</option>
<option data-gender="male" value="James">James</option>        

</select>

处理这个问题的最佳方法是。。。。。。 1.在表单提交中,使用$booking\u id将$singer\u id存储到wp\u posteta

<select name="about_performance_lead_singer" id="about_performance_lead_singer" value="">

<option disabled="" selected=""> -- Choose a singer -- </option>
<option  value="1">Toni</option>
<option  value="2">Jack</option>
<option value="3">James</option>        
</select>

--选择一个歌手--
托尼
杰克
詹姆斯
其中1、2、3等为$Artister_id 使用此代码生成

$singers = get_posts(
    array(
        'post_type'  => 'singers',
        'numberposts' => -1
    )
    );
    // Array of WP_User objects.
    foreach ( $singers as $singer ) {
        echo "<option  value='".esc_html( $singer->ID )."' >" . esc_html( $singer->singer_name ) . "</option>"; 
    }
$singers=获取帖子(
排列(
“post_type”=>“singers”,
“numberposts”=>-1
)
);
//WP_用户对象的数组。
foreach($singers作为$singer){
echo“.esc_html($singer->singer_name)。”;
}
当您需要检索艺术家详细信息时。 1.使用post meta获取艺术家/歌手Id
get\u post\u meta($booking\u id,'singer\u id')
2.使用歌手id获取歌手详细信息
get\u post\u meta($singer\u id,'singer\u gender')


希望这会有所帮助。

为什么不在提交表格时再次让歌手们来,这样才能找到性别?此外,歌手没有特定的id,因此您可能有多个同名歌手。@RyanWillis因为“singers”是一种自定义帖子类型,他们有一个唯一的id-您是否建议我将其添加为另一个数据变量,即data singer id?或者我应该将值更改为ID?是的,选择框的值应该始终是唯一的。拉基布的答案是肯定的
<select name="about_performance_lead_singer" id="about_performance_lead_singer" value="">

<option disabled="" selected=""> -- Choose a singer -- </option>
<option  value="1">Toni</option>
<option  value="2">Jack</option>
<option value="3">James</option>        
</select>
$singers = get_posts(
    array(
        'post_type'  => 'singers',
        'numberposts' => -1
    )
    );
    // Array of WP_User objects.
    foreach ( $singers as $singer ) {
        echo "<option  value='".esc_html( $singer->ID )."' >" . esc_html( $singer->singer_name ) . "</option>"; 
    }