如何捕获所选选项并发送注册表?

时间:2013-06-16 作者:Enoque

我正在自定义WordPress注册表,我需要显示“选择”表单提交中的选项列表。

我使用以下代码捕获select的select选项:

<option value="Medicine" id="option-1" <?php if($_POST[\'name_of_select\']==\'Medicine\') {?> selected="selected" <?Php } ?>>Medicine</option>
下面是生成列表的jQuery代码:

function list(array_list) {

    $("#formOptions").html(""); //reset child options
    $(array_list).each(function (i) { //populate child options
        $("#formOptions").append("<option value=\\""+array_list[i].value+"\\">"+array_list[i].display+"</option>");
    });

}
以及列表选项:

var Option 1 = [
    {display: "Medicine", value: "Medicine" }];
因为列表是根据之前选择的另一个选项加载的。

现在,我使用jQuery生成选项列表选择字段。但当用户发送表单时,不会发送所选选项的值。选项发送为空。

我的问题是:

如何捕获所选选项并传入发送注册表?

谢谢你给我小费

1 个回复
最合适的回答,由SO网友:Bainternet 整理而成

使用jQery填充select字段的方式,当您可以使用filter并使用PHP钩住表单时,例如:

 //1. Add a new form element...
add_action(\'register_form\',\'_register_form_wpa103118\');
function _register_form_wpa103118 (){
    $name_of_select = ( isset( $_POST[\'name_of_select\'] ) ) ? $_POST[\'name_of_select\']: \'\';
    $options = array(
        \'Medicine\' => \'Medicine\',
        \'Option2\' => \'Option2\',
    );
    ?>
    <p>
        <label for="name_of_select"><?php _e(\'First Name\',\'mydomain\') ?><br />
            <select name="name_of_select">
                <?php
                foreach ($options as $key => $value) {
                    $selected = ($value == $name_of_select)? \' selected="selected"\': \'\';
                    echo \'<option\'.$selected.\' value="\'.$key.\'">\'.$value.\'</option>\';
                }
                ?>
            </select>
    </p>
    <?php
}

//2. Add validation. In this case, we make sure first_name is required.
add_filter(\'registration_errors\', \'_registration_errors_wpa103118\', 10, 3);
function _registration_errors_wpa103118 ($errors, $sanitized_user_login, $user_email) {
    if ( empty( $_POST[\'name_of_select\'] ) )
        $errors->add( \'name_of_select\', __(\'<strong>ERROR</strong>: You must select ....\') );

    return $errors;
}

//3. Finally, save our extra registration user meta. or do whatever you want with it.
add_action(\'user_register\', \'_user_register_wpa103118\');
function _user_register_wpa103118 ($user_id) {
    if ( isset( $_POST[\'name_of_select\'] ) )
        update_user_meta($user_id, \'name_of_select\', $_POST[\'name_of_select\']);
}

结束

相关推荐

$wpdb在自定义帖子类型上使用SELECT查询不返回结果,在默认帖子类型上工作

编辑:添加更多背景信息。我编写了一个插件,可以在贴子页面中添加一个元框。发布帖子时,插件将为帖子生成一个随机ID,并将随机ID和帖子guid插入到数据库中的自定义表中。发布后或编辑后,插件查询自定义表以根据帖子guid检索帖子的随机ID,并在元框中打印出随机ID。在我将add\\u meta\\u box函数中的帖子类型从“post”更改为“coult”之前,一切都很好。插件将生成随机ID并将其和post guid保存到表中,但在元框中会出现此错误:注意:正在尝试获取/home/qultshow/publ