2

我正在尝试使用 JQuery 将一组复选框传递给 PHP。我正在使用使用 JSON 将多个复选框项传递给 PHP 文件并查询数据库中的代码我应该在那个问题下发布这个吗?

复选框对应于日历中月份中的每一天。值是一个月中的整数天

<td><input name="check[]" value="4" type="checkbox">4</td>
<td><input checked="yes" name="check[]" value="7" type="checkbox">7</td>

复选框位于表格中的表格中。

<form id="checkboxes">
<table id="calendarId" class="calendar"> 

我使用 Jquery 将复选框传递给 PHP:

   $("#calendarId").load($.post("calendar.php",{check: $("form#checkboxes").serialize()}));

Firebug 显示在 post 参数中有一个复选框列表。我检查生成此示例的两天是 7 天和 21 天,这在代码中是可辨别的。

check   check%5B%5D=7&check%5B%5D=21
Source
check=check%255B%255D%3D7%26check%255B%255D%3D21

我的问题是我无法在 PHP 中提取这些值。

parse_str($_POST['check'], $checkboxes); 

返回一个空字符串,就像在 POST 数组上循环一样:

foreach($_POST as $key=>$val){
    $test .= $key . "; " . $value . "; ";
}

试图循环 $_POST['check'] 会产生一个错误,我认为这意味着 $_POST['check'] 是空的。

完整页面位于http://www.genomics.liv.ac.uk/shereMuseum/calendar1.html

在发布之前,我还尝试将复选框打包到数据结构“复选框”中:

        var checkboxes = new Array();
        $("input[name='check[]']:checked").each(function(){checkboxes.push($(this).val());});

或者

        $.each($("input[name='check[]']:checked"),function() {
                checkboxes.push($(this).val());
        });

但随后 Firebug 将 POST 参数报告为:

undefined   undefined
undefined   undefined
Source
undefined=undefined&undefined=undefined

我将非常感谢任何建议。哈利

4

2 回答 2

0

试着看看这个: http: //files.nette.org/109/jquery.ajaxform.js

于 2012-04-25T09:02:39.357 回答
0

不知道你为什么使用 $('#calendarId').load(...),但你有没有尝试过这样做

$.ajax({
    type: 'POST',
    url: 'calendar.php',
    data: $('#checkboxes').serialize(),
    success: function(response) {
        // handle the response here
    }
});
于 2012-04-25T09:20:54.057 回答