質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

16821閲覧

同ページ内でのPOST

chNOBUNAGA

総合スコア41

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2016/12/05 13:49

編集2016/12/05 14:24

同ページ内でのPOSTの受け渡しができずに困っています。
test.php
HTML

<?php echo $_POST['test']; ?> <form action="" method="post"> <select name="test"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <input type="submit" value="送信"> </form> ```

以上 よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

フォームタグ内にてセットされたデータは送信ボタンを作成してデータを送信しないと送信されることはありません。
そこで送信ボタンを作ります。

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によってデータが送信されたときのみ動作すればいいので、$_SERVERREQUEST_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:09

編集2016/12/05 14:15
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chNOBUNAGA

2016/12/05 14:23

すいません。 <input type="submit" value="送信">は書き忘れましたが、ちゃんと入っています。
退会済みユーザー

退会済みユーザー

2016/12/05 14:28

そうなのであればプログラムはちゃんと動くと思いますよ。 おそらく環境の設定とかで間違っているところがあるのではないかと。
chNOBUNAGA

2016/12/05 14:35

単純なミスがありました。すいませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問