- 締切済み
php セレクトボックス 値取得
現在phpでフォームを作成しています。 都道府県選択のフォームがあり、データベースに都道府県のマスタが管理されています。 都道府県には北海道~沖縄まで順番にIDが振られています。 選択フォームはセレクトボックスになります。 ソースは簡単ですが <option value="<?php echo $prefid; ?>"><?php echo $prefname; ?></option> とループさせて下記の状態になります。 <select name="pref"> <option value="1">北海道</option> <option value="2">青森県</option> <option value="13">東京都</option> <option value="20">愛知県</option> <option value="47">沖縄</option> </select> とあり、選択された(例:北海道を選択)のち確認画面では1と表示されます。 これを北海道と表示させたいのですが、どのように作ったらよろしいでしょうか? sessionは使用しています。 $_SESSION['pref'] = $_REQUEST['pref']; で値受け取っています。 おわかりの方がいらっしゃいましたらご教示お願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- YkazubonY
- ベストアンサー率30% (26/86)
JavaScriptでhidden parameterに値を設定する方法もあります。 フォームを次の様に書き換えます。 <form action="" method="post" name="form1"> <input type="hidden" name="pfname" value=""> <select name="pref" id="prefid" onChange="cbselpref()"> <option value="1">北海道</option> <option value="2">青森県</option> <option value="13">東京都</option> <option value="20">愛知県</option> <option value="47">沖縄</option> </select> </form> JavaScriptは、 <script type="text/javascript"> function cbselpref() { var index = document.getElementById('prefid').selectedIndex; document.form1.pfname.value = document.form1.pref.options[index].text; } </script> PHPでは、pfnameを参照すれば良いと思います。
- shimix
- ベストアンサー率54% (865/1590)
都道府県のIDは取得出来ているのですから、それを元にデータベースから都道府県名を取得して表示すればいいだけでは? #option要素のvalue属性を都道府県名にしてしまうと、あとの #処理で困るので、都道府県IDを送っているのですよね。