- ベストアンサー
配列をPOSTで受けとる
タイトルのまんまですが 配列をformで送って それをPOSTで受け取りたいのですが うまくいきません 具体的に言うと <?php print"<form method=POST action=action.php>"; for($i=0; $i<$n; $i++){ print"<input type=text name=foo[$i]>"; } print"<input type=hidden name=n value=$n>"; print"<input type=submit value=go>"; print"<form>"; ?> ///////////以下action.php////////////////// <?php $n = $_POST["n"]; for($j=0; $j<$n; $j++){ $foo[$j] = $_POST["foo[$j]"]; print"$foo[$j]"; } ?> こんな感じのことがしたいのですが うまくいきません どうもPOSTされてないみたいでfoo[$j]はnullです 凡ミスな気がしなくもないんですが...プログラム初心者なんで↓↓ 教えてください よろしくお願いします
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
atsuGTさんこんにちは。 受け取り側は $foo = $_POST["foo"]; とするだけで$fooに送信された配列が格納されます。 $_POST["foo[添え字]"] ではなく、 $_POST["foo"][添え字] となります。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
補足ですが、PHPの特徴として 添え字がなくても0から順番に数字が勝手につきます。 <?PHP print <<<eof <form method="POST" action="$PHP_SELF"> <input type="text" name="foo[]"> <input type="text" name="foo[]"> <input type="text" name="foo[]"> <input type="text" name="foo[]"> <input type="text" name="foo[]"> <input type="text" name="foo[]"> <input type="text" name="foo[]"> <input type="text" name="foo[]"> <input type="text" name="foo[]"> <input type="text" name="foo[]"> <input type="submit" value="go"> </form> eof; $foo = $_POST["foo"]; print_r($foo); ?>