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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

4回答

3032閲覧

セレクトボックスの不具合?

uverworld101nm

総合スコア172

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/08/06 04:15

セレクトボックスを設置し、例えば下記のサンプル2をクリックするとサンプル2になりますがセレクトボックスの中の値はサンプル1になってしまいます。セレクトボックスのサンプル2をクリックしたら、セレクトボックスの値をサンプル2に固定させるにはどうすればいいですか?

HTML

1<select name="example"> 2<option value="サンプル1">サンプル1</option> 3<option value="サンプル2">サンプル2</option> 4<option value="サンプル3">サンプル3</option> 5</select> 6

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

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

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

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

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

guest

回答4

0

これ を一読しましょう
同様に別のタグも読みましょう

投稿2016/08/06 04:19

asahina_dev

総合スコア610

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

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

0

ちゃんとほかの方の言葉を聴いていますか?プログラム以前の問題だと思いますよ。
ググって色々ちゃんと調べてください。そして自分でやってください。
そしてそれをせずにただ聞くのはやめてください。そんな事の為に回答者さんの時間を盗らないで下さい。

投稿2016/08/08 04:48

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

提示のソースで特に問題なく選択した値になるようですが、何に困っているのでしょうか?
タグにPHPがあるのでひょっとしてフォームを送信するときに値がうまく取得できないといったことでしょうか?
サンプル

【追記】
値を送信したときに「サンプル1」に戻ってしまうとのことですが、
これは当然の動きです。
通常、submitで値を送信するときに、ページが遷移(リフレッシュ)しているはずです。
これを保持したい場合にはいくつかやりかたが考えられますが、
簡単なのはajaxを使うことですね。

今、PHPを使っていると思いますが、値を送信するときにformのactionを使わないようにします。
type="button"などに変えてsubmitの動作をさせないようにしてください。

あとは、ajax(jQueryを使うと簡単です)で、値を送信するためのURL(なんちゃら.phpとか)を指定してPOSTします。

もし、他のページに行ってまた戻ってきたときもその値のままにしたいとなると、それはセッションを見て値を保持しておき、フォームのページにアクセスしたときにその値を入れておくなどの処理が必要です。

具体的にサイトの構造をどうしたいのかがわかりませんが、上記を参考にどう実装するのか考えてみてください。

投稿2016/08/06 07:33

編集2016/08/06 08:05
NatsumiOki

総合スコア1298

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

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

uverworld101nm

2016/08/06 07:40

ご回答ありがとうございます。 選択した値になりますが、セレクトボックスの値がデフォルト(サンプル1)に戻ってしまいます。
NatsumiOki

2016/08/06 07:47

おっしゃっている「セレクトボックスの値」というのが何を指しているのかわからないのですが、selectのパーツ自体に表示されている文言が「サンプル1」と表示されるのですか? それとも、値を送信するときに「サンプル1」という値が送信されてしまうという話なのですか?
uverworld101nm

2016/08/06 07:50

selectのパーツ自体に表示されている文言が「サンプル1」と表示されます。
uverworld101nm

2016/08/06 07:56

サンプル2の値を送信した時に、値がサンプル1に戻ってしまうのです。
NatsumiOki

2016/08/06 07:57

私のサンプルをご覧いただくとわかりますが、質問時のソース自体には特に問題がありません。 何かよけいなことをしていない限り… たとえばJavaScriptやPHPで何かしている、導入しているフレームワークの使い方に準じていない、など。 提示されているソースだけではわからないので、関連するソースや環境、あと不具合の出ているブラウザのバージョンやOS、端末などの情報をできるだけ質問に追記してみてください。
NatsumiOki

2016/08/06 08:00

あ、値を送信したときですか。 ちょっと待ってくださいね、回答に追記します。
uverworld101nm

2016/08/06 08:05

はい、すみません。 ありがとうございます。
uverworld101nm

2016/08/06 15:37 編集

すみません、説明不足で申し訳ございません。以下が問題のコードです。 2001〜3000円をクリックすると、2001〜3000円は表示されますが、デフォルトの〜2000円に戻ってしまいます。レスポンスは省略します。 <html> <head> <title>API_SAMPLE</title> </head> <body> <form method="POST"> <select name="budget"> <option value="B001">〜2000</option> <option value="B002">2001〜3000</option> <option value="B003">3001〜4000</option> </select> <input type="submit" name="search" value="検索"> </form> </body> </html> <?php $key='私のキー'; $count='20'; $large_area='〇〇'; $start ='1'; $budget=$_POST ["budget"]; $format='xml'; $url='http://webservice.recruit.co.jp/hotpepper/gourmet/v1/?key='.$key.'&count='.$count.'&large_area='.$large_area.'&start='.$start.'&budget='.$budget. '&format='.$format; $xml=simplexml_load_file($url);
退会済みユーザー

退会済みユーザー

2016/08/08 02:58

問題のコードは本文に書いたほうが良いのでは? 回答のコードについては仕方ないと思いますがコメント欄が無駄に長くなりますし見苦しいです。
uverworld101nm

2016/08/08 03:05

すみません、質問に載せられないトラブルがあり載せられませんでした。
guest

0

内容から察するにフォームで送信し、受け取った側は、正しい値を受信できているが、再表示がかかった際に、デフォルト表示に戻ってしまうという意味かと存じます。

そしてそれをPHPで、再表示後も選択したセレクトを選択した状態にしておきたい。

というような内容かと推察いたします。
そういう意味であれば、以下のようにすればよいかと存じます。

※以下のソースは、内容がわかりやすいように、原本HTMLを極力残した形で記載しておりますが、
SELECT項目(option value値)の数が増えれば増えるほど、駄作なコーディングですので、実際に利用される際にはさらなる工夫が必要です。

php

1<?php 2$selected01 = $selected02 = $selected03 = null; 3 4if (isset($_POST["example"]) == true) 5{ 6 $select_value = $_POST["example"]; 7 8 switch($select_value) 9 { 10 case "サンプル1" : 11 $selected01 = " selected"; 12 break; 13 14 case "サンプル2" : 15 $selected02 = " selected"; 16 break; 17 18 case "サンプル3" : 19 $selected03 = " selected"; 20 break; 21 22 default : 23 break; 24 } 25 26 echo "選択したのは【${select_value}】です。"; 27} 28 29 30?> 31 32<!doctype html> 33<html> 34<head> 35<meta charset="shift_jis"> 36</head> 37<body> 38<form action="" method="post"> 39<select name="example"> 40<option value="サンプル1"<?php echo $selected01 ?>>サンプル1</option> 41<option value="サンプル2"<?php echo $selected02 ?>>サンプル2</option> 42<option value="サンプル3"<?php echo $selected03 ?>>サンプル3</option> 43</select> 44<input name="送信" type="submit"> 45</form> 46 47</body> 48</html> 49 50

投稿2016/08/09 02:39

KenjiObata

総合スコア440

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問