Web言語のお勉強~ど素人が往く~

かつてVB6を1年くらい触った事があるだけのど素人がWeb言語に挑戦します。勉強結果を随時発表します。

【PHP】送信ボタンでデータを送信する時の手法いろいろ


送信ボタンでデータを送信する

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つのページに複数ボタンを設置した場合のボタンの判別

  1. input typeのボタンやテキストのname部分を配列にしとく
  2. if($_POST['submit'])の時、key関数を使ってどのボタンが押されたかを判別
  3. 配列を使って取り出す
  4. 後はお好きなように・・・
  5. ちなみにセキュリティーは考慮されてません(エスケープして下さい)

PHPで複数のボタンを配置したときの処理(forやwhileで設置した複数のボタンを判別)

ちょっと面倒くさそう。

こちらはボタンにnameを付けておいて、PHP側でPOSTで受け取って処理を分ける方法。

今回、HTMLでForm内に複数のSubmitボタンを配置して、ボタン毎に処理を分けたいと思ってます。


その場合、ボタンの name 属性に値を設定し、PHP側で $_POST['name属性の値'] があるかどうかを判定することで、どのボタンが押されたか判定できるようです。


(PHP)HTMLのFORMでSubmitボタンを複数配置したい場合 : 3流プログラマのメモ書き

こちらの方が使いやすそう!

<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)

PHP逆引きレシピ 第2版 (PROGRAMMER’S RECiPE)