在 PHP 中提取 JQuery POST 参数


Extracting JQuery POST parameters in PHP

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

如有任何建议,我将不胜感激。哈利

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

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

$.ajax({
    type: 'POST',
    url: 'calendar.php',
    data: $('#checkboxes').serialize(),
    success: function(response) {
        // handle the response here
    }
});