【发布时间】:2010-12-06 03:35:00
【问题描述】:
为什么只有一个“db”复选框值数组的值被发送到服务器端脚本?
JQUERY:
$(".db").live("change", function() {
$(this).add($(this).next("label")).add($(this).next().next("br")).remove().insertAfter(".db:last + label + br");
var url = "myurl.php";
var db = [];
$.each($('.db:checked'), function() {
db.push($(this).val());
});
if(db.length == 0) {
db = "none";
}
$.post(url, {db: db}, function(response) {
$("#dbdisplay").html(response);
});
return true;
});
HTML:
<input type="checkbox" name="db[]" class="db" value="track"/><label for="track">track</label></br>
<input type="checkbox" name="db[]" class="db" value="gps"/><label for="gps">gps</label></br>
<input type="checkbox" name="db[]" class="db" value="accounting"/><label for="accounting">accounting</label></br>
编辑:我最终回答了我自己的问题,但是有没有人有文档(或解释)说明为什么这是必要的?我很难找到确切的答案(因此是死后的帖子)。
【问题讨论】:
-
当然,它已记录在案,因为您使用 php 作为服务器端脚本,请在此处查看:php.net/manual/en/faq.html.php#faq.html.arrays 和此处:php.net/manual/en/language.variables.external.php
-
有点跑题了,标签的
for值应该是输入id,而不是输入值。
标签: php jquery html forms post