使用jQuery AJAX传递复选框数据

时间:2011-11-05 19:56:15

标签: php javascript jquery html forms

我正在尝试使用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;

1 个答案:

答案 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文件。