フォームタグ内にてセットされたデータは送信ボタンを作成してデータを送信しないと送信されることはありません。
そこで送信ボタンを作ります。
PHP
1<?php
2 echo $_POST['test'];
3?>
4<!DOCTYPE html>
5<html lang="ja">
6<head>
7 <meta charset="utf-8">
8 <title>タイトル</title>
9</head>
10<body>
11<form action="" method="post">
12 <label>選択してください。
13 <select name="test">
14 <option value="1">1</option>
15 <option value="2">2</option>
16 <option value="3">3</option>
17 </select>
18 </label>
19 <input type="submit" value="送信">
20</form>
21</body>
22</html>
この状態でも正常に動作しますが、Noticeレベルのエラーが発生します。
このエラーは「POSTで送信されたはずのデータの$_POST['test']
が見当たらないぜ」という意味です。
echo $_POST['test']はPOSTによってデータが送信されたときのみ動作すればいいので、$_SERVERのREQUEST_METHOD
を使って送信されてきたデータはPOSTされたものかそれ以外の方法で送信されたものなのかを判断します。
そうすると、コードは以下のようになり、Noticeエラーも改善されます。
PHP
1<?php
2if ($_SERVER['REQUEST_METHOD'] === 'POST') {
3 echo $_POST['test'];
4}
5?>
6<!DOCTYPE html>
7<html lang="ja">
8<head>
9 <meta charset="utf-8">
10 <title>タイトル</title>
11</head>
12<body>
13<form action="" method="post">
14 <label>選択してください。
15 <select name="test">
16 <option value="1">1</option>
17 <option value="2">2</option>
18 <option value="3">3</option>
19 </select>
20 </label>
21 <input type="submit" value="送信">
22</form>
23</body>
24</html>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/05 14:23
退会済みユーザー
2016/12/05 14:28
2016/12/05 14:35