我正在尝试使用jQuery的.getJSON
方法将所选复选框的值传递给PHP文件。
问题: PHP文件似乎没有收到这些值。我正在使用print_f
来查看PHP文件是否已收到表单数据。查看返回数据,错误PHP抛出[Undefined index:
]告诉我2个数组$bedroom
和$bathroom
未定义。我如何让它工作?
HTML代码
<form action="form_ajax.php" method="post">
<input type="checkbox" name="bedroom[]" value="1">
<input type="checkbox" name="bedroom[]" value="2">
<input type="checkbox" name="bedroom[]" value="3">
<input type="checkbox" name="bathroom[]" value="1">
<input type="checkbox" name="bathroom[]" value="2">
<input type="checkbox" name="bathroom[]" value="3">
<input type="submit" id="button" value="submit!!!">
</form>
jQuery代码
$(function() {
$("#button").click(function(e) {
e.preventDefault();
var other_data = "hello";
$.getJSON("form.php", {some-other-data: other_data, bedroom: bedroom[], bathroom: bathroom[]}, function(data) {
console.log(data);
});
});
});
PHP代码
<?php
$bedroom = $_GET['bedroom'];
$bathroom = $_GET['bathroom'];
print_r($bedroom);
print_r($bathroom);
&GT;
答案 0 :(得分:3)
根据$.getJSON()
的jQuery文档,数据作为查询字符串变量传递,因此我建议您尝试使用$_GET
代替:
$bedroom = $_GET['bedroom'];
$bathroom = $_GET['bathroom'];
编辑,如何将所有表单数据发送到php文件:
如果向form-tag添加id属性,则可以轻松使用jQuery序列化表单,如此,并将其作为$.getJSON()
中的数据对象传递:
$.getJSON("form.php", $("#your-form-id").serialize());
然后,所有选中的复选框都应传递给PHP文件。