PHP更新数据库,其数据值来自

时间:2015-12-09 18:52:50

标签: php wordpress forms

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

在表单中,我已将歌手性别添加为选项中的数据变量,例如:

<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>

此代码使用以下php生成:

$singers = get_posts(
    array(
        'post_type'  => 'singers',
        'numberposts' => -1
    )
    );
    // Array of WP_User objects.
    foreach ( $singers as $singer ) {
        echo "<option data-gender='".esc_html( $singer->singer_gender )."' value='".esc_html( $singer->singer_name )."' >" . esc_html( $singer->singer_name ) . "</option>"; 
    }

提交表单时,我想更新名为“wedding_singer_gender”的wp_postmeta表中的一行 - 此行特定于要填写的预订表单。以下是我更新特定行的方法,我不知道如何使用'data-gender'变量填充它

// Get booking form ID from URL query string
$booking_form_id = get_query_var( 'booking-id' );

update_post_meta($booking_form_id, 'wedding_singer_gender', *WEDDING SINGER GENDER*);

1 个答案:

答案 0 :(得分:0)

处理这个问题的最佳方法是...... 1.在表单提交时,将$ singer_id存储到带有$ booking_id的wp_postmeta

<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等将是$ artist_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>"; 
    }

当您需要检索艺术家详细信息时。 1.从post meta使用获取艺术家/歌手ID get_post_meta ($booking_id, 'singer_id') 2.使用歌手ID获取歌手的详细信息 get_post_meta ($singer_id, 'singer_gender')

希望这会有所帮助。