WordPress插件管理页面 - 如何检查是否选中了复选框?

时间:2015-01-19 07:35:15

标签: php wordpress plugins checkbox

我在设置页面中添加了一个复选框,如下所示:

function abc_render_admin(){
    global $abc_options;
        ob_start(); ?>
        <form id="abc-form" action="" method="POST">
        <div>
            <?php $options = get_option('abc_options'); ?>
            <p>
                <input id="abc_settings[update_date]" name= "abc_settings[update_date]" type="checkbox" value="1" <?php checked('1', $abc_options['update_date']); ?>/>     
                <label class="description" for="abc_settings[update_date]">
                        <?php _e('Option 1', 'abc'); ?>
                        </label>
            </p>

            <button id="abc_submit" name="abc-submit" class="button-primary"> <?php _e('Submit', 'abc'); ?> </button>   

        </div>
        </form>
        <div id="abc_results"></div>
        <?php echo ob_get_clean();
}

复选框在管理页面上很好地显示。但是,我无法找出检查复选框是否已选中的正确方法。我试过这个(不工作):

function abc_process_ajax(){
    if($abc_options['update_date'] == true){
         echo 'Checked';
    }
}
add_action('wp_ajax_abc_show_results', 'abc_process_ajax');

我也尝试过做print_r($abc_options);但没有得到任何结果。 检查复选框的正确方法是什么?我对WordPress不太熟悉,任何建议都会非常感激。 顺便说一句,Ajax工作正常。这是脚本:

function abc_load_scripts($hook){
    global $abc_settings;

    if($hook != $abc_settings)
        return;

    wp_enqueue_script('abc-ajax', plugin_dir_url(__FILE__) .'js/abc-ajax.js', array('jquery'));
    wp_localize_script('abc-ajax', 'abc_vars', array(
            'abc_nonce' => wp_create_nonce('abc-nonce')
        )
    );
}
add_action('admin_enqueue_scripts', 'abc_load_scripts');

ABC-ajax.js

jQuery(document).ready(function($){
$('#abc-form').submit(function(){
    data = {
        action: 'abc_show_results',
        abc_nonce: abc_vars.abc_nonce
    };

    $.post(ajaxurl, data, function(response){
        $('#abc_results').html(response);
    });

    return false;
    });
});

0 个答案:

没有答案