• ベストアンサー

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

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

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

処理方法は3つ。 1、毎回任意にsubmitする リスト1の横に「絞込」ボタンをつけておいて 「野菜」を選んだときに「絞込」ボタンをおさせる・・・ するとリスト2に結果が書かれます。 <form> <select name="select1"> <option>・・・ </select> <input type="submit" value="絞込"> <select name="select2"> <option>・・・ </select> </form> って感じ 2.javascriptでsubmitする リスト1にonChangeメソッドを設定しておき フォームをsubmitする。 <form> <select name="select1" onChange="this.form.submit()"> <option>・・・ </select> <select name="select2"> <option>・・・ </select> </form> って感じ 3.ajaxでデータをsubmitして、リスト2を得る ちょっと複雑で例が書きづらいのでソース割愛。 これが一番アプリらしい仕様。 4.だそく あらかじめすべてのリスト2の要素を全て読み込んでおき、 リスト1のonChangeメソッドで、適当なリスト2を表示する。 オーバーヘッドが大きく、あまりお勧めしないため選外。 リスト2じたいは、サブミットされたデータをもとに、 PHPでArrayでデータを持っていてもいいですし、 SQLなどにデータを持たせてもよいでしょう。

その他の回答 (1)

  • hkd9001
  • ベストアンサー率48% (99/204)
回答No.1

こんばんは。 簡単に言うと、この場合はデータベース(以下「DB」)からの値を使ってプルダウン(リストボックス)を作るわけなので (1)PHPでDBにアクセスし、必要なデータを配列か何かに格納する。 (2)PHPの print命令 もしくは echo命令 で、リストボックスそのものを生成する。このとき(1)のデータを織り込めば、DBから読んだデータをリストボックス(の選択候補)に表示することができる。 …という感じです。

関連するQ&A

専門家に質問してみよう