POST并处理多个复选框PHP

时间:2014-04-20 10:25:09

标签: javascript php

我有一个包含多个复选框的表单,用户也可以添加多个复选框,因此金额可能会有所不同。

复选框位于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 .......
   }

这会得到所需的结果,但我认为必须有更好的方法吗?

2 个答案:

答案 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中提交多选值的正确方法。