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

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

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

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

PHP

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

Q&A

解決済

1回答

1462閲覧

プルダウンから項目を選択した内容をPOSTに送りキーの変数と値の変数を表示させたいです。

sarasarasara

総合スコア8

foreach

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

PHP

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

0グッド

0クリップ

投稿2020/03/01 14:48

編集2020/03/02 04:19

実現したいこと

プルダウンのメニューをpostに渡し「新宿 100」と表示したいです。

発生している問題

selectからpostへデータを送り表示すると$valueの値(数字)しか出できません。
初心者で申し訳ございませんが宜しくお願い致します。

store-input2.php <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <p>店舗を選択してください</p> <form action="store-output.php" method="POST"> <select name="code"> <?php $store = ['新宿'=>100, '秋葉原'=>101, '上野' =>102,'横浜' =>200,'川崎' =>300, '札幌' =>400, '仙台' =>500, '名古屋' =>600, '京都' => 700,'博多' => 800]; print_r($store); foreach($store as $key => $value){ echo '<option value="',$value,'">' ,$key, '</option>'; } ?> </select> <p><input type="submit" value="確定"></p> </form> </body> </html> ファイル名store-output.php <?php if(isset($_POST['code'])) { $va = htmlspecialchars($_POST['code'], ENT_QUOTES, 'UTF-8'); } echo $va; ?>

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

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

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

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

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

kei344

2020/03/01 14:52

(質問文は編集できます)質問文のコードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。 また、公式ガイド記事をもとに質問を修正してください。 https://teratail.com/help/question-tips
Eggpan

2020/03/01 17:01

タイトルだけ見ても質問の概要が全くわからないので、より詳しいタイトルに変更いただくと回答がつきやすいと思います。
退会済みユーザー

退会済みユーザー

2020/03/02 01:23

質問者さんのトラブル解決が第一義かもしれませんが、Google検索でも検索対象にもなるこういう場に残すのだから、同じようなトラブルを抱える方の参考になるよう、わかりやすさと伝わりやすさの観点から、タイトルには内容を踏まえて要約したわかりやすいものをつけてほしいです。
kei344

2020/03/02 03:52

タイトルの「PHP初心者です。お手数おかけします。」は削除しましょう。また、回答が付いているので反応しましょう。問題が解決したら「ベストアンサー」を選び、もし解決されていないなら状況を質問文に追記してください。
sarasarasara

2020/03/02 04:20

ご指摘ありがとうございます。訂正しましたがいかがでしょうか。
kei344

2020/03/02 04:24

修正/編集ありがとうございます。回答への反応もよろしくお願いします。
guest

回答1

0

ベストアンサー

store-output.php での表示時に名前も出したい、という前提での回答です。

$_POST['code'] にはhtml上のvalue="<xxx>"の値しか入ってきません。

store-input2.phpの方で

echo '<option value="' . $key . ' ' . $value . '">' . $key . '</option>';

の様にvalueに名前も含めてしまうか、
あるいは$store の様な配列を使って、'100'という値から新宿という名前を取り出して表示する、という処理が必要になります。

<?php $store = [ 100 => '新宿', 101 => '秋葉原', 102 => '上野', 200 => '横浜', 300 => '川崎', 400 => '札幌', 500 => '仙台', 600 => '名古屋', 700 => '京都', 800 => '博多' ]; if(isset($store[$_POST['code']])) { $va = htmlspecialchars($store[$_POST['code']], ENT_QUOTES, 'UTF-8'); } echo $va;

投稿2020/03/01 17:00

編集2020/03/02 14:24
Eggpan

総合スコア3205

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

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

sarasarasara

2020/03/02 04:45

ご回答ありがとうございます。option valueの中に入れたらできました。追加の質問で恐縮ですが、受け取った際にデータを別々に表示する方法はございますでしょうか? 例  新宿($key) 100($value) 受けたデータを別々に文章で使用したいです。
Eggpan

2020/03/02 14:25

store-input2.phpは元のままでstore-output.phpで表示させる方法について追記しました。 配列の基本的な扱いの部分になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問