我正在尝试将动态生成的cheboxes(勾选时)的数据发送到我的php脚本,然后发送到mysql数据库。我有类似的东西:
form method="post" id="form">
<input type="checkbox" id="1" name="tick">
<input type="checkbox" id="2" name="tick">
<input type="checkbox" id="3" name="tick">
<input type="checkbox" id="4" name="tick">
<input type="checkbox" id="5" name="tick">
<input type="checkbox" id="6" name="tick">
</form>
(复选框的数量不是常量!)
$(document).ready(function(){
$("form#form").check(function() {
var achieved = $('input[check]');
var id = $('input[id]');
var data = 'achieved=' + achieved.val() + '&id=' + id.val();
$.ajax({
type: "POST",
url: "change.php",
data: data,
success: function(){
$('div.changed').fadeIn(400);
setTimeout(function(){ $("div.changed").fadeOut(400) }, 4000);
}
});
return false;
});
});
我错了什么?
答案 0 :(得分:0)
您需要提供可在服务器端检查的复选框元素值(value="something"
)。
您也可以使用serialize()
方法创建参数字符串,而不是手动执行。
您现在的行为方式肯定不起作用,因为您的achieved
变量与您的任何元素都不匹配(您的意思是:checkbox
?)和id
将匹配所有,因此val()
只返回第一个value
,但未在您的示例中设置。
另外,如果您的意思是&
,请不要使用&
。编码实体仅在HTML中有意义。
我也确定jQuery中没有check()
方法。你在使用插件吗?