• ベストアンサー

PHPとプルダウンメニュー

PHPで以下のことをやりたいのですが、どうしてもうまく出来ません。経験の有る方、どうぞ宜しくお願い致します。 2つのプルダウンメニューがあり、1つ目のプルダウンメニューから選択時、選択された値に関連する項目をDBより2つ目のプルダウンメニューに登録したいのです。 ちなみにDBはOracleを使用しています。 プルダウンメニューから選択時は、どのようなイベント(?)が発生するのでしょうか? もし、PHPで出来ない場合、他にどのような方法がありますか? 宜しくお願い致します。

noname#11049
noname#11049
  • PHP
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.1

これって簡単そうで、結構難しいんですよね(^^; 良くある 1:都道府県を「プルダウン1」にて選択する 2:選択された都道府県により、その都道府県に属する市町村を「プルダウン2」にセットする て感じの奴でしょ? phpはサーバーサイドスクリプトなんで、クライアントの操作(一つ目のプルダウンを選択する行為)に関して、何ら回答をしてくれません。 では、どうするのか? これを説明しようとすれば、莫大な労力が必要ですので、ヒントだけ。 結論は、フレームとJavaScriptを利用すます。 まず、そのページをフレームで構成します。 <html> <head></head> <frameset cols="*,0"> <frame src="main.php" name="main"> <frame src="hidden.php" name="hidden" scrolling="no"> </frameset> <noframes> </noframes> </html> こうしておいて、main.phpとhidden.phpを作っておきます。 hidden.phpはユーザーが意識しなければ、見えません (<frameset cols="*,0">と表示範囲を0にしているから) で、main.phpでプルダウン1が選択されたとき、その選択されたセル(当然プルダウン1)をJavaScriptで todofuken=document.input.elements[i].value; top.hidden.location.href ="hidden.php?id="+todofuken+"&cel_num="+i; といった形で、hidden.phpに送ってやります。 ここでcel_numとは、返値が入るセル、つまりプルダウン2を指します。 続いて、hidden.phpは、$_GET["todofuken"]と$_GET["cel_num"]という二つのデータを受け取ります。 まず、todofukenで、プルダウン1で選択された都道府県が分かるので、それを元にsql文を発行します。 上記の例では、 $sql="SELECT sichosoun FROM tabele_name WHERE todofuken="$_GET[todofuken]"; の様な感じですね。 で、抽出されたデータを同様の手順でmain.phpに戻してやるのです。 と、書いてきましたが、これだけで理解できれば、凄いです(笑) 我ながら凄く意味が分かりにくい(^^; と言うか、9091さんがやりたいことは、凄く分かりにくいことなのです。 ただ、理論的にはこれで可能ですし、私は何度もこの手のコードをこの方法で書いてきました。 頑張ってください

その他の回答 (1)

  • duckling
  • ベストアンサー率47% (88/185)
回答No.2

# 1 の方もおっしゃっているように、 サーバサイドスクリプトでは、 プロダウンメニューが選択された時に発生するイベントというものはありません。 なので、クライアントサイドスクリプトに頼ることになるのですが、 私も違う方法を考えてみました。 #------------------------------------------- プルダウン1から呼び出される可能性がある変数を あらかじめJavaScriptの変数に格納しておく。(笑 <荒技です。 そして、JavaScriptで <select>のOnChangeの時に プルダウン2の中身をJavaScriptで形成する。 #------------------------------------------- ちなみに、この方法は使ったことはないので 使える(有用)かどうかは分かりません。かなりの荒技ですし。(笑 (情報が少ない場合はいいのでしょうが。) もうひとつは、 #------------------------------------------- JavaScript の OnChange 時に、 選択されたselectをURLに格納し、JavaScript の location.href で飛ばし、 PHPでページごと再表示する。 #------------------------------------------- こんな感じですね。こっちは正攻法といった感じですが。 あとは言語を変えるしかないかも知れませんねぇ。

関連するQ&A

  • 【PHP】プルダウンメニューとリンク

    またPHPに関して質問させていただきます。 この質問 (http://okwave.jp/qa5492047.html) の続きにあたりますが、 プルダウンメニューにデータベースの内容を反映させることはできました。 しかし今度はそのプルダウンメニューを選択した後、「決定」等のボタンを押すと、プルダウンで選択した内容のページに飛ばすといったことを行いたいのです。 例) ------------------------------------- 「朝」を選択した状態で「決定」ボタンを押す。    ↓ 「おはようございます」と次ページで表示される。 「昼」を選択した状態で「決定」ボタンを押す。  ↓ 「こんにちは」と次ページで表示される。 ------------------------------------- このようにしたいのですが、どなたか教えていただけませんか。 それと、このようなPHPのリンク関連に詳しく掲載しているサイトを教えていただけたら嬉しいです。 どうかよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPのプルダウンメニューにDBのデータを入れたいのですが。

    初めて質問させていただきます。 PHPとMySQLを使って、とあるwebページを作成したいのですが、 DB内のあるテーブルのデータを、PHPの配列に格納し、その内容をプルダウンメニューに反映させたいのです。 データベース内のテーブルの内容(例)は以下のとおり。 テーブル名:sample | 番 | 時 | | 号 | 間 | ------- | 1 | 朝 | | 2 | 昼 | | 3 | 夜 | ------- プルダウンメニューに表示させたい内容は、この場合では「時間」です。  ---- |朝 ▼|   「▼」をクリックすると  ---- ↓  ---- |朝 ▼| |昼   |   このように表示される。 |夜   |   内容はDBから取ってきたもの。  ---- このように表示したいのです。 どなたかPHPに詳しい方、よろしくお願いします。

    • ベストアンサー
    • PHP
  • プルダウンメニューにDBの内容を表示させる

    いつもお世話になっております。 度々ですが躓きましたので皆様の知恵をお借りしたいと思います。 どうぞ宜しくお願い致します。 題名にもある通り、HTMLのプルダウンメニューで選択する項目をDBから取得し、他のDBに登録させたいです。 以下、処理時のコードです。 $result = pg_query($con, "SELECT project FROM project_tbl"); $col = pg_fetch_array($result); <SELECT NAME="project"> <OPTION VALUE="$col['project']"> </SELECT> 但し、このコードではDBの内容を取得する事が出来ませんでした。 問題点はこれ以外に ・DBに複数行のデータがある時、複数行を取得出来ない ・仮にプルダウンで選択させる事が出来たとしても、登録ボタンを押せば 選択した内容が消えてしまう と考えています。 どれに対しても解決策が見出せないので、皆様のお力をお借りしたいと 考えています。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHP-メールフォームのプルダウンメニュー

    お世話になります。 現在、メールフォームのプルダウンメニューで下記のコードにより選択項目によってリンク先のページを切り替えて表示しています。 <form method="POST" name="form_select" id="sample_1"> <script><!-- function change_action_to(){ var 変更する項目一覧=new Array("","201501_1.php","201502_1.php","201503_1.php","201504_1.php","201505_1.php","201506_1.php","201507_1.php","201508_1.php","201509_1.php","201510_1.php","2015011_1.php","2015012_1.php"); var 選んである項目の番号=document.getElementById("sample_1_1").selectedIndex; var actionを変更したいフォームのオブジェクト=document.getElementById("sample_1"); actionを変更したいフォームのオブジェクト.setAttribute("action",変更する項目一覧[選んである項目の番号]); } //--></script> さらに、もう一つのプルダウンメニューで選択肢が「A」と「B」があり、 例えば1つ目で「2015年1月」を選択し、2つ目で「A」を選んだ場合、「201501_1a.php」へ もしくは1つ目で「2015年1月」を選択し、2つ目で「B」を選んだ場合、「201501_1b.php」へ と別ページへリンクする方法が知りたいです。 どなたかご教授お願いいたします。

    • 締切済み
    • PHP
  • PHPとpostgreSQL プルダウンの作成

    いつも大変お世話になっております。 現在、PHPとpostgreSQLを使用し、webシステムの勉強をしていますが、フォームにプルダウンを設置した際の、PHPのデータの受け渡し、また、DBのテーブルへの登録方法がわかりません。プルダウンには選択肢を3つ付ける予定でおります。 postgreSQL側のレコードの作成方法と、PHPを利用しての登録の仕方で困っています。 ご教授のほど、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPの検索表示について

    PHP+Mysqlでプルダウンの項目を選択しただけで、別ウィンドウを開かずカラム内にDBから呼び出したデータを表示させることは可能でしょうか? プルダウンの項目をDBから呼び出して、項目選択後にボタンを押して表示することは出来たのですが、項目を選んだだけでできるのであれば、どうぞご指導ください。よろしくお願い致します。

    • 締切済み
    • PHP
  • プルダウンメニューの利用

    htmlのプルダウンメニューを使用した値計算のインタフェースを作成したいと思っています。 プルダウンメニューに設定するメニュー項目に値を設定し、 onChangeを使用して、その値だけをPHPプログラムに渡すようにしたいのですが、 JavaScript部分をどのように書けばいいのか判りません。 どなたかご教授お願いいたします。 <form name="formtest" action="test.php" method="post"> <table> <tr> <th>カテゴリ*</th> <td> <SELECT NAME="iPlanet" onchange=""> <OPTION VALUE="9" selected>初期値 <OPTION VALUE="0">サンプル1 <OPTION VALUE="1">サンプル2 </SELECT> </td></tr> </table> </form> onchangeでValueの値をPHPに送りたいのです。 よろしくお願いします。

  • プルダウンメニューの選択肢の保持について

    こちらにはだいぶお世話になっています。 perlとpostgresを使用してcgiを作成しているのですが、 下記のコードでプルダウンメニューにDBの値を入れて、 DBにデータが追加されてもプルダウンにもデータが追加されているプルダウンメニューを作りました。 $sql="select * from testtable order by code"; $result = $conn -> prepare($sql1); $ref = $result -> execute; while(@ref = $result->fetchrow){ $options.="<option value='$ref[0]'>$ref[1]</option>\n"; } $select="<select name=''>\n<option value=''>選択してください</option>\n$options</select>\n"; print "$select"; データの検索時にこのプルダウンメニューを使っているのですが、選らんだ選択肢を例えばBとして 送信すると、一番上の「選択してください」に戻ってしまします。 これを送信してもその時選択した選択肢を残すやり方を教えて頂けますでしょうか? testtableの中身:      プルダウンメニュー化 |code|name|      |選択してください▼| | 1 | A |         |    A    | | 2 | B |        → |    B    | | 3 | C |         |    C    | | 4 | D |         |    D    |

  • PHP プルダウンメニュー MYSQL

    PHPを習い始めているのですがどうしても分からない問題が出てきました。 プルダウンメニューを作成し、その中の項目を選択すると検索ボタンをお押さずに別のページにとび、選択項目の必要情報(全件情報)をページが切り替わったと同時にMYSQLから吐き出したいのですが、どうしてもやり方が分かりません。  色々と調べていたらjavascriptを使い検索ボタンを押さずに、 プルダウンから項目を選んだだけでページは切り替わることは出来たのですが、その次の工程にしているページが切り替わったと同時に選択項目の 必要情報を画面に出力する方法が分かりません、、 下にあるスクリプトでプルダウンから直接違うページに飛ばしており、 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <SCRIPT LANGUAGE="JavaScript"><!-- function Jump() { tu = document.f.elements['jumpto'].options[document.f.elements['jumpto'].selectedIndex].value if( tu != '-' ) { location.href = tu; } else { alert('移動先を選択して下さい。'); } } // --></SCRIPT> <FORM NAME="f"> <SELECT NAME="jumpto" onChange="Jump();"> <OPTION VALUE="-" SELECTED>移動先を選択</OPTION> <option value="page1.php" >aaa</option> <option value="page2.php" >bbb</option> <option value="page3.php">ccc</option> <option value="page.php">ddd</option> </SELECT> </FORM> 例えばpage1.phpに飛んで、ページが切り替わったと同時に 全件情報を出力したいのですが どのたかお分かりになるかたが いましたら是非お伺い出来ませんでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • wordpress プルダウンメニューについて

    php wp_dropdown_categoriesを使って、 特定のカテゴリーのプルダウンメニューを作りたいと思い、 下記のソースを書きました。 ですが、プルダウンには何も出力されませんでした。 (登録記事は数件あります。) <?php wp_dropdown_categories('child_of=10'); ?> もしかして、この書き方は間違っているのでしょうか? どうぞよろしくお願いいたします。

    • 締切済み
    • PHP

専門家に質問してみよう