0

私は国のこのドロップダウンリストを持っています:

<select name="country">
    <option value="">Country...</option>
    <option value="Afganistan">Afghanistan</option>
    <option value="Albania">Albania</option>
    <option value="Algeria">Algeria</option>
    <!-- Removed several options as they are not needed for question -->
    <option value="Zaire">Zaire</option>
    <option value="Zambia">Zambia</option>
    <option value="Zimbabwe">Zimbabwe</option>
</select>

ユーザーが自分のプロファイルを編集するとき、ユーザーが(データベースで)選択した国がデフォルトで選択されるようにしたいです。

ユーザーが登録したときに、Egyptが選択されました。ユーザーがプロファイルを編集するときに、このドロップダウンリストでEgyptデフォルトで(変更されるまで)選択するようにします。

4

3 に答える 3

1

アカウントの作成時にユーザーが選択したselected属性を追加するだけです。option

基本的な考え方

Foreach

<?php
$country_list = '<select name="country">';
$selected_country = $user_info['country'];
foreach($countries as $country){
 $is_selected = ($country===$selected_country);
 $country_list .= '<option value="'.$country.'"'.($is_selected ? ' selected' : '').'>$country</option>';
}
$country_list .= '</select>';

その間

<?php
...
$country_list = '<select name="country">';
$selected_country = $user_info['country'];
$stmt->bind_result($country);
while($mysqli->fetch()){
 $is_selected = ($country===$selected_country);
 $country_list .= '<option value="'.$country.'"'.($is_selected ? ' selected' : '').'>$country</option>';
}
$country_list .= '</select>';

注:少し多くのリソースを消費しますが、少なくとも国の配列を使用することをお勧めしますが、できれば国をデータベースに保存してくださいデータベースの理由は、国の名前を変更した場合(たとえば、ソ連からロシア)、ユーザーごとにデータベースを更新する必要がないためです(テーブルid内のにリンクされているため)。countries遅かれ早かれ、optionある時点でリストのマークアップを変更する可能性があるため、データベースまたは配列をお勧めします。リストを配列に含めると、ではなく1行を変更できるようになります。リストされている国ごとに1回。

于 2012-04-06T14:50:06.580 に答える
0

HTML構文は次のとおりです。

<option value="AAAA" selected>label</option>

したがって、PHPでは、DBから値と選択した値をロードし、それらをループで印刷するときに、現在の印刷が選択されている場合は、「選択済み」をエコーし​​ます。

于 2012-04-06T14:44:59.263 に答える
0

データベース値から変数を定義します。<select>タグ全体を変数として保存します。選択したオプション値を見つけて、選択した属性に置き換えます。

$country_selected_value;
// defined from database
$country_select = '<select name="country">...</select>';
// ... represents your options
$value_search = 'value="'.country_selected_value.'"';
// what to look for in the select
echo str_replace($value_search , $value_search.'" selected="selected"', $country_select);
// displaying the select field with the selected option

データベースからデータを取得するためのヘルプが必要な場合は、すでにSOに関する多くのそのようなトピックがあります。

于 2012-04-06T14:54:27.230 に答える