0
<select name="state" class="input-small" selected="<? if(isset($_SESSION['user'])){ echo $row_login['state']; }?>">
  <option value="AL">AL</option>
  <option value="AK">AK</option>
  <option value="AZ">AZ</option>
  <option value="AR">AR</option>
  <option value="CA">CA</option>

ユーザープロファイル編集セクションを作成していますが、リストのデフォルトとして表示するには、ユーザーが事前に選択した状態が必要です。どうすればこれを行うことができますか?

この問題には簡単な解決策があるはずなので、jqueryを含まないものが望ましいです。ありがとう!

4

2 に答える 2

2
<select name="state" class="input-small">
<?php

$states = array('AL', 'AK', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'DC', 'FL', 
'GA', 'HI', 'ID', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'ME', 'MD', 'MA', 'MI', 
'MN', 'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND', 'OH', 
'OK', 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VA', 'WA', 'WV', 
'WI', 'WY');

foreach ($states as $state)
{
    echo '<option ';
    if(isset($_SESSION['user']) && $row_login['state'] == $state)
    {
        echo 'selected="selected" ';
    }
    echo 'value="' . $state . '">' . $state . "</option>\n";
}

?>
</select>

オプションリストを上記に置き換えるだけで、リストが動的に作成され、各オプションを印刷するときに、その状態オプションがユーザーが持っているものであるかどうかが確認されます。その場合は、デフォルトとしてそれが選択されます。if()ステートメントを50回実行するよりもはるかに簡単です。

于 2012-12-11T01:36:08.280 に答える
0

それを行う面倒な方法は、各オプションで、ユーザーの状態がオプションの状態と等しい場合に選択されたエコーをエコーすることです。ユーザーの状態がにあると仮定すると、次の$row_login['state'];ようになります。

<option value="AL" <?php if($row_login['state'] == "AL") echo " selected "; ?> >AL</option>

オプションごとにそれを行います。通常、これは非常に自動化された方法で実行する必要があります。

于 2012-12-11T01:28:19.930 に答える