我有一个包含多个复选框的表单,用户也可以添加多个复选框,因此金额可能会有所不同。
复选框位于div内,我按如下方式收集每个复选框状态
[使用Javascript]
$('#list input:checked').each(function(){
checked = checked + "," + $(this).attr('id')
})
然后我将它发布到一个清理它的PHP脚本。
[PHP]
$checked = trim($checked, ',');
$checked = explode(",", checked);
然后更新数据库..
[SQL]
foreach ($checked as &$id)
{
sql stuff .......
}
这会得到所需的结果,但我认为必须有更好的方法吗?
答案 0 :(得分:0)
对于这部分:
$('#list input:checked').each(function(){
checked = checked + "," + $(this).attr('id')
})
您可以执行类似serialize()
功能的操作。
答案 1 :(得分:0)
你应该拥有相同名称的所有复选框,并在末尾加上括号,如下所示:x[]
,它们将具有值而不是ID:
<input type="checkbox" name="x[]" value="1">
<input type="checkbox" name="x[]" value="2">
...
当您提交此表单时,您将获得如下数组中的所有选中值:
$_POST['x'] => array(1,2,3)
因此您不必进行任何字符串操作。这是在php中提交多选值的正确方法。