• ベストアンサー

プルダウンリスト(コンボボックス?)でひとつ選択し、その値を別のページで表示させる方法はないのでしょうか。

お世話になっております。 ひとつわからないのですが、 たとえば、プルダウンには、”選択してください”、”東京”、”大阪”、”沖縄”と入っているとします。ここで、”大阪”を選び、別ページ”A”で値を$_postで受け取るとします。選択済みは”選択してください”です。 このページ”A”は再編集するためのページです。ページ”A”を開くと、先ほど選択した”大阪”をプルダウンメニューの初期設定(選択済み)にするにはどうしたらいいのでしょうか。 申し訳ございませんが、ご教授願います。よろしくお願いいたします。

  • PHP
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.3

こんにちは。 PHP側で処理する方法、JavaScriptで処理する方法 と考えられます。 1.PHP側での処理(コンボボックスの表示が固定) $location = $_POST['location']; print "<select name=\"location\">\n"; if ( $location == "東京" ) {  print "<option value=\"東京\" celected>東京\n"; } else {  print "<option value=\"東京\">東京\n"; } if ( $location == "大阪" ) {  print "<option value=\"大阪\" celected>大阪\n"; } else {  print "<option value=\"大阪\">大阪\n"; } // 以下コンボボックスの項目分処理の追加が必要 2.配列やDBよりコンボボックスの表示内容を取ってる場合 // 例は配列 $location = $_POST['location']; $selArr = array ( "選択して下さい","東京","大阪","沖縄"); print "<select name=\"location\"> for ( $i = 0; $i < count($selArr); $i ++ ) {  $selected = "";  if ( $location == $selArr[$i] ) {   $selected = " selected";  }  print "<option value=\"".$selArr[$i]."\"$selected>".$selArr[$i]."\n"; } print "</select>\n"; 1.はコンボボックスの表示内容は固定で書いています。 postで取得した値がoptionを書き出す部分で 一致した場合にselectedを追加した形で出力します。 項目が増えると、その分ifを追加しないといけません。 2.は配列でコンボボックスに表示するものを準備しておき、 展開して表示する形です。 (項目が増えても簡単に対応できるのでお勧めです。) 送信されたコンボボックスの内容と再編集ページで コンボボックスを配列より生成する際に比較を行い、 $selectedという変数にselectedを入れることにより デフォルトで選択される項目を制御しています。 2の処理だと項目が増えようが減ろうが、if文の追加等 は必要ないので楽ですよ。

tomofriend
質問者

お礼

とても丁寧なご回答ありがとうございます。 2番を参考にさせていただきます! 本当にありがとうございました。

その他の回答 (2)

  • cojirou
  • ベストアンサー率50% (59/117)
回答No.2

ページAのHTMLで、大阪のoptionタグにselected と記述すればいいのでは? ページAで受け取った値により、selectedと記述される optionが変わるようにする、ということ。 例えば、 <select> <option value="osaka" <?if($POST['chiiki'] == "osaka"){ echo("selected"); } ?> (同じように東京と沖縄のoptionも記述) </select> といった感じに。 参考までに書いたので、間違いなどは訂正してください。

tomofriend
質問者

お礼

回答ありがとうございます。とてもシンプルでわかりやすかったです。こうやればいいんですね。 参考になりました。本当にありがとうございます。がんばります!

  • agehage
  • ベストアンサー率22% (2552/11346)
回答No.1

引数で渡すだけではだめでしょうか?

tomofriend
質問者

お礼

ご回答ありがとうございます。ちょっと確認が遅れてしまいました。はやく一人でいろいろできるようにがんばりたいと思います。ありがとうございます。

関連するQ&A

  • プルダウンで選択された値を別ページで表示させたい

    題名の通りなのですが、なかなかマッチする情報がなく苦戦しております。 お力を貸していただけると幸いです。 実現したいのは、簡単にいえば、 http://www.bang.co.jp/?ID=dp844 このサイトのように、プルダウンで選択したデータを次のページで 表示したいと思っています。ただし表示させるだけではなくて プルダウンで選択された値を遷移先のフォームのhiddenにセットしたいのです。 javascriptであれこれやっているのですが、3日間たってもできておりません。 例えば、a.htmlのプルダウンで、りんごと選ばれて確認と押したら、 b.htmlに遷移し、画面には、りんごと表示されて、 <input type="hidden" name="name" value="りんご"> こういう形にしたいと思っています。 <a.html> 選択してください。←プルダウン りんご みかん すいか 注文するボタン <b.html> 果物   りんご←前ページで選択された情報が表示されている 送付先  テキストボックス 確認ボタン どうかお力添えをお願い致します。

  • コンボボックス(プルダウン)からデータを持ってくる方法

    ウェブページについて質問です。PHP,MySQL,JavaScriptを利用したいと思っています。ページを表示させた時に、データベースからデータを取得してプルダウンメニュー1(コンボボックス)に値を表示させたいとします。さらにもう一つ、プルダウンメニュー2があり、1で選択した項目により、2で表示させる内容を変更させたいと思っています。 例えば、1のリストの中には、野菜、果物、お菓子とあって、野菜を選択した時には、リスト2には自動的ににんじん、ピーマン、きゃべつ などをセットしたいです。 データを一括で持ってきて、JavaScriptあたりで制御をすればいいのでしょうか?それともリスト1を選択した段階で、データベースにリスト2に表示する値をひっぱってこれば良いのでしょうか?またこの作業をするにあたって、ページをロード時にデータをプルダウン1にセットするように処理をしたいのですが、どのように処理をすればよいでしょうか?

    • ベストアンサー
    • PHP
  • プルダウンで値選択後、Hpにもうひとつプルダウンを追加する方法について

    初期表示上Aというプルダウンがあり、Aのプルダウンで、AAAを選択した場合にBというプルダウンを画面に追加表示させると言う事は可能なのでしょうか? (AのプルダウンにBを追加するのは無く、画面そのものにプルダウンを追加) 過去を探してみても見つけれませんでした。 (検索機能で絞りました><) リロードする以外に可能であれば、どのような例でも構いません。 ご教授頂ければと思います。 雑文恐れ入ります。

  • プルダウンメニューで選択した値をリロード後にも保持したい

    1.プルダウンメニューと連動して、選択した値によってインラインフレーム内のファイルを書き換える。 2.リロード後も選択したプルダウンメニューの値を維持している。 を実現したいのですが、2が難物でどうすればよいか悩んでいます。 よい方法はないでしょうか?

  • selectで選ばれた値を別ページのセレクトボックスへ渡す

    こんばんわ。 二つの連動したセレクトメニューがあって、別ページにもまったく同じものがあるんですが、最初のページで選ばれた値を別ページを読み込んだときにセレクトメニューに初期設定として渡すことはできますか? いろいろWEBでサンプル等探しておりましたが、ニッチもサッチもいきません。どなたかご教授ください。

  • プルダウンで選択された値を計算し送信

    1~5の数字を選択するプルダウンメニュー$aformと、6~9を選択するプルダウンメニュー$bformがあり、投稿ボタンがひとつあるフォームを作りました。 $aformプルダウンで選択された値を×10にし、$bformプルダウンで選択された値に足して、投稿ボタンを押すとその値が変数に格納され、保存画面で数値が確認できるようにしたいのですが、投稿ボタンを押して一度保存をしても数値は0のままで計算されていないのですが、再度、投稿画面に戻り投稿を押すと計算がされてちゃんと結果が表示されます。ということは、計算するまでの流れは出来ていると思うのですが、なぜ一度で表示できないのかがわかりません。どういう可能性があるのか、もしくはズバリというものを教えていただけないでしょうか? <{assign var="a_suji" value=$aform*100}> <{assign var="kekka" value=$a_suji+$bform}> <input type="hidden" name="ymcount" value="<{$kekka}>" />

  • プルダウンリストを別セルの値によって変える。

    あるセルにプルダウンリストを設定したいのですが、表示させるリストを同行の別セルの値によって変更したいのですがいい方法があるでしょうか? 例)参照セル   A列 → 1,2,3のいずれか数値が事前に入力されている。   プルダウン  B列 → A列値が1 or 2であればリストとして停止or残す の2値を選択。               B列値が3であれば削除or残すの2値を選択。  よく2つのプルダウンリストを連動させる方法は検索でヒットしますが、上記の様な方法がわかりません。わかる方ご教示願います。

  • プルダウンで選択した値によって、表示する行数を変えたい

    現在、HPで予約ページを作成しているんですが、プルダウンで選んだ値(1~10)によって、入力できる行数を変えたいと思い、思考錯誤中です。。 イメージとしては、”じゃらん”で宿泊予約する際の予約内容入力画面です。 プルダウンで1~10部屋目まで選択⇒選んだ部屋数分の行(部屋数ごとの人数入力行)が表示される。 どなたかご存知な方がいらっしゃいましたらご教授頂けると幸いです。 宜しくお願い致します。

  • プルダウンリストの選択と同時に更新

    よろしくお願いします。 今、ASPとaccessデータベースによるWEBシステムを作成しています。 プルダウンが2つある(AとBとする)として、 Aである項目を選択すると、 それに伴いBで選べる項目が決まるようにしたいとおもっています。 Aのプルダウンから選んで、ボタンを押すようにすればできるのですが、ボタンでなく値を選んだ時点でBを決めるようにするにはどうすればよいでしょうか? ご教授お願い致します。

  • プルダウンで選択したページから戻った時

    どなたか教えてください。 プルダウンで選択したページにリンクして、そのページから戻ってきた場合、 プルダウンメニューは選択した項目ではなく、一番上に来る項目が選択されているようにしたいのです。 例:--メニュー--    テスト1ページへ    テスト2ページへ ↓をやったら、うまくいったのですがステータスバーに「1」と表示されてしまいました。 <script language="JavaScript"> <!--// function gotosite(site) { if (site != "") { self.location=site } } function init() { status = document.jump.length; for (i=0; i<document.jump.length; i++) document.jump.elements[i].selectedIndex=0; } //--> </script> ちなみにselectのところはこのように書きました。 <form method="POST" name="jump"> <select name="jump" onChange="gotosite(this.options [this.selectedIndex].value)"> よろしくお願いします。どうしても「1」を出したくないんです。 やっぱり無理なんでしょうか?

専門家に質問してみよう