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

「[]」が付いたその配列インデックスは、おそらく問題を引き起こします。代わりにこれを行ってください:

  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 に答える
0

$('#save')。click(function(){$('#hiddendiv')。post('save.php');});を実行することをお勧めします。

またはonclick=$('#hiddendiv')。post('save.php');

そして、save.phpにファイルを次のように処理させます$ test = $ _ POST ['committee'];

于 2012-08-19T11:56:09.440 に答える