プロが教える店舗&オフィスのセキュリティ対策術

現在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'];
で値受け取っています。

おわかりの方がいらっしゃいましたらご教示お願いします。

A 回答 (2件)

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を参照すれば良いと思います。
    • good
    • 0

都道府県のIDは取得出来ているのですから、それを元にデータベースから都道府県名を取得して表示すればいいだけでは?



#option要素のvalue属性を都道府県名にしてしまうと、あとの
#処理で困るので、都道府県IDを送っているのですよね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!