- ベストアンサー
DBの値をリストボックスの初期位置にしたい
php,mysqlを使ってホームページを作っています。 ユーザー登録で入力した値をDBに書き込み、次にユーザー登録情報編集でその値をリストボックスに表示させたいのですがやり方を教えてください。DBに書き込むところまではできましたが、編集画面がうまく作れません。 (例) リストボックス --- ←ユーザー登録画面での初期位置 東京 神奈川 千葉 リストボックス 東京 神奈川 ←DBに書き込まれた値が初期位置になるようにしたい 千葉 <select size="1" name="area"> <option value="" selected>--- <option value="東京">東京</option> <option value="神奈川">神奈川</option> <option value="千葉">千葉</option>
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
失礼しました(^^; <? if($db == "東京"){ echo("selected"); } ?> のように、echo("selected")の後に「;」セミコロンをつければエラーは消えると思います。
その他の回答 (3)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
私が作成していたクソサイトでそんな事を可能にする関数を公開しています。 <option>タグを文字列として生成します。 http://www.cherry-sunburst.com/hazimeteno-homepage/php/original/com_area.php ファイルから都道府県の一覧を取得してきていますので、 そこは適当に変更されて構いません。 また、<option>タグのvalueが連続する数値になりますので、 valueを文字列指定したい場合は、変更する必要があります。 手順は以下の通り。 【登録時】 ・AreaCombo(0, "") と呼び出す。 【確認画面から登録画面へ戻った場合】 ・AreaCombo(0, $Value) と呼び出す。 ↑ If (登録時) { $Value = ""; ElseIf (修正時) { $Value = $_POST['Area']; } みたいな感じで、AreaCombo(0, $Value)に統一。 【修正時】 ・AreaCombo(0, $Value) と呼び出す。 ・$Valueは、DBから取得してきた値。 基本的にやりたい事は実現出来ると思います。 ファイルをそのまま利用しなくても、都合の良いよう ご自身でコピペなどして下さい。
お礼
ちょっと難しいですがとても参考になります。 有難うございました。
- tecinfo
- ベストアンサー率52% (32/61)
DBから値を取得して$dbという変数に入れます。 $db = "神奈川" ←ここでは例えば$dbに神奈川を入れるとして、 HTML部分で <select size="1" name="area"> <option value="" <? if($db == ""){ echo("selected") } ?>>--- <option value="東京" <? if($db == "東京"){ echo("selected") } ?>>東京</option> <option value="神奈川" <? if($db == "神奈川"){ echo("selected") } ?>>神奈川</option> <option value="千葉" <? if($db == "千葉"){ echo("selected") } ?>>千葉</option> とやってあげればできると思います。^^
補足
ありがとうございます。 書かれている通りにやってみましたが、 Parse error: parse error, unexpected '}', expecting ',' or ';' とエラーが出てしまいます。
- yambejp
- ベストアンサー率51% (3827/7415)
ユーザー情報から神奈川県のところに selectedを書くようにソースを書けば よいのではないでしょうか?
お礼
できました! 度々有難うございました。