【2-1】PHPでform送信!データの受け渡す方法

form送信とはなにか?から確認しておきましょう!

このように、index.phpで入力した情報を別ファイル(result.php)に飛ばしてみます。

具体的には今からこの3つのことを行います。

  1. 名前パスワードを入力して「送信」ボタンクリック
  2. index.phpで入力された名前とパスワードをresult.php受け取る
  3. result.phpで受け取った名前とパスワードを出力する

フォルダ構成はこんな感じです。

sample1フォルダindex.phpresult.php」の2つを作っていきます。

格納場所は次のようになります。

/Applications/MAMP/htdocs/sample1/index.php

/Applications/MAMP/htdocs/sample1/result.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="result.php" method="POST">
        名前:<input type="text" name="name"> <br>
        パスワード:<input type="password" name="pass"> <br>
        <input type="submit" >
    </form>
</body>
</html>

formタグ

まず、入力フォームを作ります。

こちらの記事でも作り方を解説しているので、参考にしてみてください。

action=””

送信ボタンを押すと、actionに指定した箇所に入力情報が送信される

今回は「result.php」を指定しているので、後で作成する「result.php」に送信されます!

name=””

inputタグの中に入っている「name=””」に指定したものは「result.php」で使用するものになります!

method=””

「method=””」に指定するものとしては、

POST

・GET

の2つがあります。

詳細はここでは省略しますが、POSTを指定しておいてください!

result.php

<?php
    $name = $_POST['name'];
    $pass = $_POST['pass'];
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p>送信された名前は:<?php echo $name;?>です</p>
    <p>送信されたパスワードは:<?php echo $pass;?>です</p>
</body>
</html>

name属性を受け取る

「index.php」「name=””」で指定したものと同じ値を指定します。

受け取り方は、こうなります。

$_POST[‘name属性に指定した値’];

$_POST[‘name’];

「$_POST[‘name’属性に指定した値]」で受け取ったものを

  • 変数$name
  • 変数$pass

にそれぞれ代入して使える状態にしておきましょう。

$name = $_POST[‘name’];
$pass = $_POST[‘pass’];

こうすると「result.php」の中で、

「index.php」で入力された名前パスワードを使用することができるようになります。

HTMLの中にPHPを埋め込んで使う方法

HTMLの中に、突然PHPの内容の変数が入ってくるとエラーなります。

言語が違うので当たり前ですね…

そこで、HTMLの中に

これはPHPの内容ですよ

というのを示してあげれば混在することはなくなります。

その方法はいつも通り、

<?php?>で囲むだけです!

実はこれだけです。

注意点は、PHPで画面表示させるためには「echo」を使うということです。

$nameというPHPの変数の中に入っているものを出力するためには「echo」を使いますよね。

でもHTMLの中に書くとなると意外にこの「echo」を忘れてしまうので、気をつけてください。

<body>
    <p>送信された名前は:<?php echo $name;?>です</p>
    <p>送信されたパスワードは:<?php echo $pass;?>です</p>
</body>

<?php echo $name;?>

と一列になっていますが、普段

<?php

echo $name;

?>

と書いているのを改行無しで一列にしているだけです。

その他のformタグ

ラジオボタン

ラジオボタンは複数の選択肢の中から、

一つだけ選ぶことができるこんな感じもものですね。

入力するわけではないですが「inputタグ」を使用します。

    <form action="">
        性別:
        <input type="radio" value="男性">男性
        <input type="radio" value="女性">女性
    </form>

注意点!

ラジオボタンは、

「value=””」の中に書いた値が、実際のデータとして送信されます。

つまり、
「value=”人間”」などと書いておくと「男性」のボタンを選択したはずなのに、
実際に送信されるのは「人間」と言う値になります。

画面上に表示されているのは、赤くした部分の「男性」によるものです。
<input type=”radio” value=”男性”>男性

プルダウンメニュー

プルダウンは、、見た方が早いですね。こんな感じです。

「select」タグと「option」タグを組み合わせて使用します。

    <form action="">
        年齢:
        <select name="">
            <option value="10代">10代</option>
            <option value="20代">20代</option>
            <option value="30代">30代</option>
        </select>
    </form>

こちらも同様に「value=””」の中に指定した値が、データとして送信されます。

まとめ

  • formタグの作り方は、こちら
  • action=””:inputタグに入力された情報はactionに指定した箇所に送信される
  • name=””:送信先ではname属性に指定された値と同じ名前で受け取れる
  • method=””POSTかGETを指定できるが、とりあえずPOSTと指定しておく
  • $_POST[‘name属性に指定した値’]で受け取ることができる
  • HTMLの中にPHPを埋め込む時は全て<?php?>で囲む
  • input type=”radio”:ラジオボタン
  • selectoption:プルダウン
  • value=””の中に指定した値が、実際のデータとして送信される

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA