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