0

我有一组复选框,我试图通过 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,但我不确定是什么。

4

3 回答 3

0

我建议做一个 $('#save').click(function(){ $('#hiddendiv').post('save.php');});

或 onclick=$('#hiddendiv').post('save.php');

并让 save.php 像这样对待文件 $test=$_POST['committee'];

于 2012-08-19T11:56:09.440 回答
0

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

  var committee = new Array();
      $('input:checked').each(function(){
       committee.push($(this).val());
     });
于 2012-08-19T11:27:36.207 回答
0
$("input:checked").map(function (i,e) { return $(this).val();})

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

var committee = $("input:checked").map(function (i,e) { return $(this).val();});
$.ajax({
  url: 'save.php',
  type: 'POST',
  data: {
  ...
  committee: committee
  }
 });
于 2012-08-19T11:30:30.647 回答