jquery数组的复选框包含最后一个复选框

时间:2012-08-19 11:19:00

标签: php jquery

我有一组复选框,我试图通过AJAX / PHP传递POST。当我填充阵列时,它只会拾取最后一个。

HTML

<input type="checkbox" name="committee[]" value="membership">Membership <br/>
<input type="checkbox" name="committee[]" value="operations">Operations <br/>
<input type="checkbox" name="committee[]" value="membership">Board <br/>

的Javascript

$("#save").click(function (e) { 
 ...
 var committee = { 'committee[]' : []};
  $('input:checked').each(function(){
   committee['committee[]'].push($(this).val());
 });

 $.ajax({
  url: 'save.php',
  type: 'POST',
  data: {
  ...
  committee: committee
  }
 });
});

save.php上,此时我正在做的就是print_r($_POST);并且看到只显示最后一个复选框。我知道我在input:checked函数中做错了,但我不确定是什么。

3 个答案:

答案 0 :(得分:0)

带有“[]”的数组索引可能会导致问题。这样做:

  var committee = new Array();
      $('input:checked').each(function(){
       committee.push($(this).val());
     });

答案 1 :(得分:0)

$("input:checked").map(function (i,e) { return $(this).val();})

将返回带有checked复选框值的数组。 所以:

var committee = $("input:checked").map(function (i,e) { return $(this).val();});
$.ajax({
  url: 'save.php',
  type: 'POST',
  data: {
  ...
  committee: committee
  }
 });

答案 2 :(得分:0)

我建议做一个 $(&#39;#保存&#39;)。点击(函数(){ $(&#39;#hiddendiv&#39)后。(&#39; save.php&#39);});

或onclick = $(&#39;#hiddendiv&#39;)。post(&#39; save.php&#39;);

让save.php对待像这样的文件$ test = $ _ POST [&#39;委员会&#39;];