【PHP】フォームからの入力を連想配列として送信する方法
経緯
HTMLのフォームから送信されたデータを受信する場合、$_POST
や$_GET
で受け取って使用すると思います。
例えばデータを使用する場合は$_POST['id']
みたいに連想配列として使用すると思いますが、
他にも$_POST['name']
や$_POST['password']
みたいに同じ分類でデータ送信をしたいとなると
一々各データを受け取らないといけないので面倒なことになります。
これをまとめて受け取りやすくしようと思い、連想配列として受け取ろうとしました。
概要
HTMLのフォーム名を連想配列のように記述してデータを送信し、データ受信時にまとめて受け取れるようにします。
方法
- HTMLに
<form action="URL" method="メソッド名"><input type="text" name="配列名[キー名]"></form>
と記述して、データ入力フィールドを作成 - HTMLに
<input type="submit" name="ボタン名" value="ボタンに表示する値">
と記述して、データ送信ボタンを作成 - PHPに
$変数名 = $_POST['配列名'];
もしくは$変数名 = $_GET['配列名'];
と記述して、データを受信 - あとは
$入力情報を格納する変数名 = $変数名['キー名']
と記述して、連想配列として使用
具体例
フォームから入力された内容を連想配列として送信するHTMLの例です。
アカウントという分類でID、ユーザ名、パスワードを送信しています。
注意してほしいことは、<input type="text" name="account['name']">
と連想配列のように記述すると使用できないということです。
<input type="text" name="account[name]">
と記述する必要があります。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title></title> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <form action="index.php" method="POST"> <p> ID : </p> <input type="text" name="account[id]"> <p> UserName : </p> <input type="text" name="account[name]"> <p> Password : </p> <input type="text" name="account[password]"> <input type="submit" name="Submit" value="Submit"> </form> </body> </html>
POSTメソッドで送信されたデータを連想配列としてまとめて受け取るPHPの例です。 POSTメソッドで送信されたアカウント情報を一旦受け取り、受け取った変数で連想配列として使用しています。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title></title> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <?php $account = $_POST['account']; print('ID :'.$account['id'].'<br>'); print('UserName :'.$account['name'].'<br>'); print('Password :'.$account['password'].'<br>'); ?> </body> </html>
まとめ
分類分けできそうな入力内容は上記のように、連想配列のような形式でまとめることができます。 一旦格納することによって、受信したデータをまとめて制御することができて中々便利だと思います。