次のような入力フォームがあります<input type="text" name="record_date[] ...
フォームを他のphpファイルに送信するajaxの部分は
var values = $("form").serialize();
$.ajax({
type: 'POST',
data: { 'Values' : values },
dataType: 'json',
他のphpファイルはデータを受け取ります
$values = $_POST['Values'];
理解できるように、これparse_str($_POST['Values'],$output);
は配列を作成します($output
配列です)
しかし、これprint_r(json_encode($output));
では何も表示されません(値などを含む配列が表示されると予想されます)
使用するecho json_encode($output['record_date']);
と、すべてが機能し、入力された値が取得されます。
配列を作成してから、このように配列を使用しようとしています
foreach ($output as $i=>$output_value ) {
echo json_encode($output_value[$i]);
}
これに変更しましecho json_encode($output_value['record_date'][$i]);
たが、どちらの場合も何もエコーしません。
私が理解しているように、主な質問はparse_str($_POST['Values'],$output);
php配列に「変更/変換」する方法です
$_POST['Values']
次のようになります。record_date%5B%5D=02.07.2013&record_date%5B%5D=01.07.2013
おそらく、他のparse_str
何かを使用する必要がある代わりに
アップデート
ajax の使用dataType: 'json',
と php の場合
foreach ($output as $key => $output_value) {
echo json_encode($output_value);
}
その後、何も取得しません。
コメントdataType: 'json',
の場合は、["02.07.2013","01.07.2013"] を参照してください。
代わりにecho json_encode($output_value);
使用する場合は、 のecho $output_value;
長いリストを参照してくださいArrayArrayArrayArrayArray
。
内部でforeach
使用するvar_dump($output_value);
場合は、このように参照してください
array(2) { [0]=> string(1) "2" [1]=> string(1) "6" }
...............
array(2) { [0]=> string(10) "02.07.2013" [1]=> string(10) "01.07.2013" }
内部でforeachecho $output[$key][0]
が必要なことをしているようです...
最終的に、そのようなコードを使用する必要があるという結論に達しました
foreach ($output[record_date] as $key => $output_value) {
echo $output_value. ' output value<br>';
echo $output[other_name_from_html_input][$key]. ' output date selector value<br>';
}