您的 dataType 参数指定您希望JSON数据作为响应,但这并不意味着您将数据作为JSON发送 . 在你的情况下,你发送一个数组,因此在PHP而不是:
$scid_list=(json_decode($_POST['scid_list'], true)); /* WRONG */
你应该简单地使用:
$scid_list=$_POST['scid_list'];
dataType(默认值:Intelligent Guess(xml,json,script或html))类型:String您希望从服务器返回的数据类型 .
总之,对于给定的HTML:
Filter 22
Filter 28
Filter 31
和脚本:
$(document).on('ready', function() {
$('form').on('submit', function(e) {
e.preventDefault();
scid_list = [];
$('.filter_on:checked').each(function(i){
scid_list.push( $(this).data("scid") );
});
$.ajax({
type: "POST",
dataType: "json",
data: {scid_list:scid_list},
url: "work.php",
success: function(data){
alert(data.join('\n'));
}
});
});
});
PHP部分是:
$scid_list=$_POST['scid_list'];
echo json_encode($scid_list);
exit();