我正在尝试将复选框与 Ajax 一起使用。如果没有 Ajax,我可以处理它。这是我的 Jquery 代码
$("#skillcat").click(function(e) {
var submit_val = new Array();
e.preventDefault();
var ids = $('check_subjects input:checked')
.map(function(){
return this.value;
}).get();
$.ajax( {
type : "POST",
dataType : "json",
url : "./wp-admin/admin-ajax.php",
data : {
action : 'each_category',
check_subjects : ids
},
success : function(data) {
alert(data);
$('#accordion').html(data);
}
});
});
这是我的 php 代码,其中在服务器端生成按钮和复选框
foreach($subjects as $key=> $data){
echo '<input type="checkbox" id="'. $data->id .'" value="'. $data->id .'" name="check_subjects[]"> '. $data->subject .'<br>';
}
我用来从 Post 数组中捕获数据的服务器端
if(isset($_POST['check_subjects'])){
//var_dump(check_subjects);
$check_subjects = implode(',', $_POST['check_subjects']);
//echo '$check_subjects '. $check_subjects;
}
但是,当我运行上面的代码时,我注意到一些数据被发送到服务器(通过 chrom 开发工具)。但我在警报框中得到空值。我猜响应是空的,因为数据没有正确发送到服务器。我不确定用于将请求传递给 Ajax 的 javasript 代码。
谁能解释我在哪里做错了?