我正在使用 jQuery 的 .serialize() 将包含一些复选框和其他输入的表单数据发布到 PHP 脚本。
post.js:
$(function(){
$("#button").click(function(){
$.ajax({
type: "POST",
url: "post.php",
data: $("form#input").serialize(),
success: function(data){
$.getJSON('post.php', function(data) {
$.each(data, function(key, val) {
})
})
}
})
})
})
post.php:
$tags = array();
foreach($_POST['checkboxes'] as $key => $value){
$tags[] = "$value";
}
$json = array(
array(
"tags" => $tags,
),
);
echo json_encode($json);
如果我将 getJSON 指向 post.php,我会在错误日志中收到一条 PHP 警告,上面写着“PHP 警告:为 foreach() 提供的参数无效”,这会导致输入表单中的数据无法正确传递(即 fwrite在 foreach 没有写任何东西之后)。如果我为 getJSON 引用另一个文件,比如 data.php,或者如果我根本不包含它,则帖子可以正常工作。为什么会这样?我可以只存储数据并制作第二个脚本来返回 JSON 数据,但在一个脚本中完成这一切会更容易。