• ベストアンサー

リストメニューで検索できるようにしたい。

いつもお世話になります。どうか御指導をお願い致します。 PHPとMYSQLを利用してリストメニューで検索できるようにしたいのですが。。。 下記のように、データベースの参照結果をリストメニューに反映して使用したいのですが、このままではリストメニューのselectedで選択されるデータが一番最終行になってしまいます。これを一番最初のデータ、もしくはこちらの指定するデータを選択させるにはどのようにすればよいのでしょうか? <form name="form1" method="post" action=""> <select name="select"> <?php $con = MYSQL_CONNECT("localhost","datebasename","password"); mysql_select_db("datebase00001"); $res = mysql_query("SELECT area_id, area_name FROM area"); while ($row = mysql_fetch_assoc($res)) { ?> <option value="<? $row['area_id'] ?>" selected><? echo $row['area_name'] ?></option> <? } ?> </select> </form> データベースの結果が 東京 名古屋 大阪 福岡 となった場合、このままでは、selected で表示されるのは、 福岡なってしまいます。 これを東京というようにしたいのです。 どうぞよろしくお願い致します。

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

  • ベストアンサー
  • Rasyuki
  • ベストアンサー率57% (19/33)
回答No.2

while ($row = mysql_fetch_assoc($res)) { ?> <option value="<? $row['area_id'] ?>" selected><? echo $row['area_name'] ?></option> <? } ?> これを while ($row = mysql_fetch_assoc($res)) { $i++; if($i == 1){ ?> <option value="<? $row['area_id'] ?>" selected><? echo $row['area_name'] ?></option> <? }else{ ?> <option value="<? $row['area_id'] ?>"><? echo $row['area_name'] ?></option> <? } ?> にしてみてはどうでしょう?

nicolemen
質問者

お礼

Rasyukiさん。 ありがとうございます。 うまくできました。 今後ともどうぞよろしくお願い致します。

その他の回答 (1)

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

セレクトメニューでデフォルトをつけたいという用件でしょうか? 適当なデータをわたしたときそれが設定されている・・・というやりかた なら私はよくこんな風にかいています (こまかいつっこみ箇所はかってに調整してあります) <?php $con = MYSQL_CONNECT("localhost","datebasename","password"); mysql_select_db("datebase00001"); $res = mysql_query("SELECT area_id, area_name FROM area"); while ($row = mysql_fetch_assoc($res)) { $selected=$_POST['area']==$row['area_id']?" selected":""; $str.=<<<eof <option value="{$row['area_id']}"{$selected}>{$row['area_name']}</option> eof; print <<<eof <form name="form1" method="post" action=""> <select name="area"> <option value="">選択してね</option> {$str} </select> <input type="submit" value="送る"> </form> eof; ?>

nicolemen
質問者

お礼

yambejpさん、ありがとうございます。 チャレンジしたのですが、  } が抜けているようで、unexpected $end というエラーがでました。 どこに入れたらよいのか分からず、止まっています。 よろしければ、お手数ですが御指導お願いします。

関連するQ&A