本記事では、PHPにおいて
formで配列をPOSTする方法を解説する。
PHPでデータを配列にしてフォームを送信する方法2パターン
PHPでデータを配列にしてフォームを送信する方法は、以下の2パターンがある。
PHPでデータを配列にしてフォームを送信する方法2パターン
- 配列名にキーを指定しないで送信する方法(通常配列)
- 配列名にキーを指定して送信する方法(連想配列)
それぞれの方法を順に解説していく。
① 配列名にキーを指定しないで送信する方法(通常配列)
一つめの方法は、
配列名にキーを指定しないで送信する方法(通常配列)だ。
以下の様なフォームを例に紹介していく。
■フォーム
<form action="get.php">
<div>
<input type="text" name="memo[]">
</div>
<div>
<input type="text" name="memo[]">
</div>
<div>
<input type="text" name="memo[]">
</div>
<input type="submit" value="送信する">
</form>
■受け取り側(get.php)
print_r($_GET['memo']);
//実行結果
Array ( [0] => メモ1 [1] => メモ2 [2] => メモ3 )
上記「name=memo[]」の様に、input要素のnameの値を配列形式で書くことで、配列のかたちでデータを取得することが可能となる。
①通常配列でformの値をPOSTする
name=変数名[]
② 配列名にキーを指定して送信する方法(連想配列)
二つめの方法は、
配列名にキーを指定して送信する方法(連想配列)だ。
■フォーム
<form action="post.php" method="POST">
<div>
<input type="text" name="user[id]">
</div>
<div>
<input type="text" name="user[name]">
</div>
<div>
<input type="text" name="user[password]">
</div>
<input type="submit" value="送信する">
</form>
■受け取り側(post.php)
print_r($_POST['user']);
//実行結果
Array ( [id] => 1 [name] => kihara [password] => satoshi1234 )
①の方法と比較して異なる点は、配列形式にして記載したnameの値にキーを指定していることだ。
キーを指定することで、受け取り側では連想配列の様にしてデータを受け取ることが可能となる。
ある程度のまとまりを持ってデータを送信したい時などに使うと、データの管理が分かりやすくなり便利な機能だ。
②連想配列でformの値をPOSTする
name=変数名[キー]
関連記事
https://www.php.net/manual/ja/reserved.variables.post.php
https://www.php.net/manual/ja/language.types.array.php