送信ボタンでデータを送信する
PHP勉強メモφ(..)
今回は、フォームからデータを受け取る方法について解説します。例として、外観をHTMLで作り、PHPを使って実際にデータを送受信する方法で紹介します。
PHPでフォームからデータを受け取る方法(GETとPOST) | TechAcademyマガジン
formの基本は下記の様な感じ。
formでくくった中にinputタグを書いてテキスト入力でデータ内容を書いてもらって、submitで送信してもらう。
送信先はformのactionで指定したページへと遷移する。
<h1>フォームデータの送信</h1> <form action = “index.php” method = “get”> <input type = “text” name =“comment/“><br/> <input type = “submit” value =“送信/“> </form>
複数のボタンを配置したい場合は?
「更新」と「削除」ボタンを同一画面に配置したいなど。
こちらは配列にボタン名称を格納するパターン。
PHPでfor文などで1つのページに複数ボタンを設置した場合のボタンの判別
- input typeのボタンやテキストのname部分を配列にしとく
- if($_POST['submit'])の時、key関数を使ってどのボタンが押されたかを判別
- 配列を使って取り出す
- 後はお好きなように・・・
- ちなみにセキュリティーは考慮されてません(エスケープして下さい)
ちょっと面倒くさそう。
こちらはボタンにnameを付けておいて、PHP側でPOSTで受け取って処理を分ける方法。
今回、HTMLでForm内に複数のSubmitボタンを配置して、ボタン毎に処理を分けたいと思ってます。
その場合、ボタンの name 属性に値を設定し、PHP側で $_POST['name属性の値'] があるかどうかを判定することで、どのボタンが押されたか判定できるようです。
こちらの方が使いやすそう!
<form method="post" action="control.php" id="input"> <input type="text" name="testtext" value=""> <input type="submit" value="ボタン1" name="button1"><br> <input type="submit" value="ボタン2" name="button2"><br> <input type="submit" value="ボタン3" name="button3"><br> </form> <?php if (isset($_POST['button1'])) { //ボタン1の時の処理 //(header関数で別のページに飛ばすことも可。その場合、他のPOSTの値を引き継ぐ時は // SESSION変数を使うとよいかも) exit; }elseif ( isset($_POST['button2']) ){ //ボタン2の時の処理 exit; }elseif ( isset($_POST['button3']) ){ //ボタン3の時の処理 exit; } ?>
この方式でいきたいと思います(^-^)/
私のPHP教科書はこちら。非常に分かりやすいです!
PHP逆引きレシピ 第2版 (PROGRAMMER’S RECiPE)
- 作者: 鈴木憲治,山田直明,山本義之,浅野仁,櫻井雄大,安藤建一
- 出版社/メーカー: 翔泳社
- 発売日: 2013/10/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (8件) を見る