2012-04-25 11 views
2

JQueryを使用してPHPにチェックボックスのグループを渡そうとしています。私はPassing multiple checkbox items to PHP file using JSON and querying a DBからコードを使用していますか?PHPでのJQuery POSTパラメータの抽出

チェックボックスは、カレンダーの月の日ごとに一つです。値は月の整数日です。

<td><input name="check[]" value="4" type="checkbox">4</td> 
<td><input checked="yes" name="check[]" value="7" type="checkbox">7</td> 

チェックボックスはフォーム内の表内にあります。

<form id="checkboxes"> 
<table id="calendarId" class="calendar"> 

私はPHPにチェックボックスを渡すためのjQueryを使用します。

$("#calendarId").load($.post("calendar.php",{check: $("form#checkboxes").serialize()})); 

Firebugのがチェックボックスの一覧がポストパラメータであることを示しています。私がこの例を生成するためにチェックした2日間は、コード内で識別可能な7と21でした。

check check%5B%5D=7&check%5B%5D=21 
Source 
check=check%255B%255D%3D7%26check%255B%255D%3D21 

私の問題は、これらの値をPHPで抽出できないことです。

parse_str($_POST['check'], $checkboxes); 

はないがPOST配列をループとして、空の文字列を返す:

foreach($_POST as $key=>$val){ 
    $test .= $key . "; " . $value . "; "; 
} 

[ '確認'] $ _POSTをループしようとI手段と仮定エラーを生成する$ _POST [」チェック ']は空です。

 var checkboxes = new Array(); 
     $("input[name='check[]']:checked").each(function(){checkboxes.push($(this).val());}); 

または

 $.each($("input[name='check[]']:checked"),function() { 
       checkboxes.push($(this).val()); 
     }); 

をしかし、その後のFirebug:

完全なページがhttp://www.genomics.liv.ac.uk/shereMuseum/calendar1.html

である私にも投稿する前に、データ構造 "チェックボックス" にチェックボックスをパックしようとしていますPOSTパラメータを次のように報告します。

undefined undefined 
undefined undefined 
Source 
undefined=undefined&undefined=undefined 

私はどんな提案にも非常に感謝しています。 ハリー

+0

"$ _POST ['check']をループすると、$ _POST ['check']が空であるというエラーが発生します。 var_dump($ _ POST)を試してください。あなたのPHPで、あなたが実際に何を得ているのか見てみましょうか? –

答えて

0

わからない負荷(...)、しかし、あなたは

$.ajax({ 
    type: 'POST', 
    url: 'calendar.php', 
    data: $('#checkboxes').serialize(), 
    success: function(response) { 
     // handle the response here 
    } 
}); 
ようにそれをやって試してみました
+0

答えを見つけたトムに感謝します。 データは、2次元アレイとして$チェックボックスから抽出することができる: parse_str($ _ POST [ '確認']、$チェックボックス)。 $ firstElement = $ checkboxes ['check'] [0]; 私はGETのために働いていたようにjqueryからのPOSTの戻り値を収集するためにも同じメソッドを使用しようとしていました。正しいjQueryのコマンドがあった。。。 $( "#calendarId")負荷($ポスト( "calendar.php"、{チェック:$( "#フォームのチェックボックスを")。html(data);}}}}};}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}である。 })); calendarId内のすべてを戻り値の内容で置き換えます。 – user1355576

関連する問題