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

http://oshiete1.goo.ne.jp/kotaeru.php3?q=2170989
の続きです。回答くださったLancerVIIさんの方法で遷移した後、
各個人の詳細情報を表示する画面を作ったのですが、これは更新画面を兼ねています。
ここでDBから読み込んだ値を、ドロップダウンメニューやラジオボタンの
値としてセットしたいです。

■イメージ
(1) 会員ID(id):[ 1022 ]
(2) 氏名(simei):[ 田中一郎 ]
(3) 会員種別(syubetu):[  A  ]▼(ABCのドロップダウンリスト)
(4) 都道府県(address):[ 大阪府 ]▼(47都道府県のドロップダウンリスト)
(5) 性別(seibetu):◎男 ○女(男か女のラジオボタン)

氏名などは<input type="text" value="$simei">などと流し込めば良さそうかと
想像していますが、上でいう、(3)~(5)に適切な値をセットするのに
適切な値をセットするようにするにはどのような方法がありますか?

下記のように、読み込まれた値に応じてIF分岐すれば、できなくも
なさそうですが、(4)(=47都道府県)の場合は47回も分岐しなければ
ならなくなります。

if($syubetu == 'A'){
  echo "<input type="radio" value="A" selected>";
  echo "<input type="radio" value="B">";
  echo "<input type="radio" value="C">";
}elseif($syubetu == 'B'){
  echo "<input type="radio" value="A">";
  echo "<input type="radio" value="B" selected>";
  echo "<input type="radio" value="C">";
}else{
  echo "<input type="radio" value="A" >";
  echo "<input type="radio" value="B">";
  echo "<input type="radio" value="C"selected>";
}

A 回答 (1件)

ラジオボタンなら先にデフォルトを設定するための配列を


用意しておくとできます。

$radio_syubetu[$_POST["syubetu"]]="selected";
print <<<eof
<input type="radio" value="A" name="syubetu" {$radio_syubetu[A]}
<input type="radio" value="B" name="syubetu" {$radio_syubetu[B]}>
<input type="radio" value="C" name="syubetu" {$radio_syubetu[C]}>
eof;

ドロップダウンリストを使う場合は、ループの中で
チェックをつけます。
都道府県名は当然IDで管理していますよね?
そうであれば以下のような仕組みになります。

$sql="SELECT `ID`,`NAME` FROM `県名テーブル`";
$res=mysql_query($sql,$link);
$select_str="<select name='states'>";
$select_str.="<option>県名を選択して下さい";
while($rows = mysql_fetch_array($res,MYSQL_ASSOC)){
$selected=($rows[ID]==$_POST["states"])?"selected":"";
$select_str.="<option value='$rows[ID]' $selected>$rows[NAME]";
}
$select_str.="</select>";
print $select_str;
    • good
    • 0
この回答へのお礼

yambejpさん、毎度お世話になっております。

前にも教わった、HTMLの可視性の高い
print <<<eof技ですね、

DDリストの方も、いつものように
具体的なスクリプトでご提示いただき
そのまま活用させていただけそうです。

実は、別件が仕事がはいって質問のPHPの方に
戻れず、まだ試させていただいてないのですが
またわからなくなったらご教示よろしくお願い致します。

お礼日時:2006/05/25 22:35

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