0

私はこのコードを持っています:

$genders = array('Male', 'Female');

foreach ( $genders as $gender ) {
echo '<option' . ( $rowMyBiodata['Gender'] == $gender ? ' selected' : '' ) . '>';
echo $gender;
echo '</option>';
}

そして、そのコードは次のような HTML コードを生成します:

<option selected>Male</option>
<option>Female</option>

ここで、各オプションに値を追加して、出力が次のようになるようにします。

<option selected value='M'>Male</option>
<option value='F'>Female</option>

配列を連想配列に変更することで、この問題を解決できると思います:

$genders = array('M'=>'Male', 'F'=>'Female');

しかし、オプションタグの値として使用できるように配列のインデックスを取得する方法は?

4

3 に答える 3

1

出力スクリプトを次のように変更するだけです。

$genders = array('M' => 'Male', 'F' => 'Female');

foreach ( $genders as $gender => $description ) {
    echo '<option value='.$gender.' ' . ( $rowMyBiodata['Gender'] == $description ? ' selected' : '' ) . '>';
    echo $description;
    echo '</option>';
}

foreachパラメーターの新しい使用法に注意してください。$key=> $ valueのペアがあり、これを出力で使用します。

于 2012-11-16T04:01:26.193 に答える
1

このような:

$genders = array('M' => 'Male', 'F' => 'Female');

foreach ($genders as $key => $value) {
    echo '<option' . ($rowMyBiodata['Gender'] == $value ? ' selected' : '' ) . ' value="' . $key . '">';
    echo $value;
    echo '</option>';
}
于 2012-11-16T04:01:35.947 に答える
0

次のように使用します。

foreach ( $genders as $key=>$gender ) {
  echo '<option value='.$key.' . ( $rowMyBiodata['Gender'] == $gender ? ' selected' : '' ) . '>';
  echo $gender;
  echo '</option>';

}

于 2012-11-16T04:05:21.343 に答える