我想用ajax制作带有复选框的过滤器。
以下是带有复选框的表格:
<form method="post" id="filter">
<input type="checkbox" name="f" value="1" onchange="this.form.submit()" <?php if ($face ==\'1\') {echo \'checked\';}?>
<input type="checkbox" name="t" value="1" onchange="this.form.submit()" <?php if ($twitter==\'1\') {echo \'checked\';}?>
<input type="hidden" value="myfilter">
</form>
下面是javascript:jQuery(document).ready( function(){
jQuery(\'#content\').on(\'submit\', \'#filter\', function(e) {
e.preventDefault();
var test = jQuery(\'#test-btn\').data( \'id\' );
jQuery.ajax({
url : rml_obj.ajax_url,
type : \'post\',
data : {
action : \'test_function\',
security : rml_obj.check_nonce,
test_data : test
},
success : function( response ) {
alert (test);
jQuery(\'#result\').html(response);
}
});
});
});
和功能:function test_function() {
check_ajax_referer( \'rml-nonce\', \'security\' );
$test_data = $_POST[\'test_data\'];
echo $test_data;
die();
}
add_action(\'wp_ajax_test_function\', \'test_function\');
add_action(\'wp_ajax_nopriv_test_function\', \'test_function\');
现在我只是想测试一下。所以,当用户单击表单中的复选框时,就会调用ajax。但我被卡住了。如果我将此行添加到窗体操作action="<?php echo site_url() ?>/wp-admin/admin-ajax.php"
, 然后在提交时,我被ajax url困住了:admin ajax。php。如果我删除action
表单中的行,然后简单地重新加载页面。如果有人能告诉我我做错了什么,我将以此为基础,从表单中实际发送复选框值,并在函数中执行查询以过滤数据。