教えて!gooグレードポイントがdポイントに!

タイトルのまんまですが
配列を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です
凡ミスな気がしなくもないんですが...プログラム初心者なんで↓↓
教えてください
よろしくお願いします

教えて!goo グレード

A 回答 (2件)

atsuGTさんこんにちは。




受け取り側は

$foo = $_POST["foo"];

とするだけで$fooに送信された配列が格納されます。


$_POST["foo[添え字]"] ではなく、
$_POST["foo"][添え字] となります。
    • good
    • 1

補足ですが、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);

?>
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

人気Q&Aランキング