- ベストアンサー
連動させたいセレクトボックスについて。
こんにちは。DB+PHPが初心者のものです。 前にもここで質問させていただきましたが、 自分なりにコードを書いてみたので コードの訂正、ご教授をよろしくお願いいたします。 セレクトボックス1には、[table 1]の、種類が入り れレクトボックス2には、[table 1]の種類に連動して、[table 2]の名前が選択できるようにする。 下記のようにソースを書いてみましたが、 table1の値は、セレクトボックスでちゃんと表示されますが、table2はセレクトボックスは表示されるものの、何も値がありません(T_T) 動きとしては、table1のセレクトボックスで選択したら、その項目をDBへ問い合わせ、その項目に対応した、DBに登録されているtable2の値を二つ目のセレクトボックスに表示させたいです。 <html> <body> <select name="mkoumoku"> <option selected>-------------</option> <?php //DB接続 $dbcon=mysql_connect("localhost","abcd","defg"); //DB選択 mysql_select_db("zozozo"); //table1を取得 $res=mysql_query("select distinct * from table1"); while ($rows=mysql_fetch_array($res)) { echo "<option value=\"".$rows['id']."\">".$rows['kind']."\n"; } echo "</select>"; ?> <select name="skoumoku"> <option selected>-------------</option> <? //table1に連動して項目を変えたいところのコード $res1=mysql_query("select * from table2 where key =$_POST[mkoumoku] order by id"); while ($rows=mysql_fetch_array($res1)) { echo "<option value=\"".$rows['id']."\">".$rows['name']."\n"; } //Dbクローズ mysql_close($dbcon); ?> </body> </html>
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (6)
- yambejp
- ベストアンサー率51% (3827/7415)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
- yambejp
- ベストアンサー率51% (3827/7415)
- yambejp
- ベストアンサー率51% (3827/7415)
- kusukusu
- ベストアンサー率38% (141/363)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
お礼
naktak様、再度、ご回答ありがとうございます。 説明が分かりやすいので、大変助かりました。 その後、色々と改良して試してみましたところ、 2つのセレクトボックスは連動して、動作いたしました。原因は、 $res1=mysql_query("select * from table2 where table2.key='{$_POST['mkoumoku']}' order by id"); このソースのtable2.key='{$_POST['mkoumoku']}'の部分を、table2.key=".$_POST['mkoumoku']"に変えましたら正常に動作いたしました! 本当にありがとうございました。 今から、ここでセレクトした値を あらかじめ用意してある、空のテーブルにinsertして 表示する処理を頑張ってみようと思います。 またgooさんの方へお世話になりそうですが・・・(^^ゞありがとうございました。