Php 在下拉列表中循环,如何选择值?

Php 在下拉列表中循环,如何选择值?,php,mysql,Php,Mysql,当在页面上显示表单供用户编辑信息,并且表单由下拉框组成时,如何循环通过下拉框中的选择来选择其预定义的mySQL条目 比如说 用户国家:澳大利亚 我将如何在国家列表中进行搜索,即:制作: 澳大利亚 变成 <option value="AU" selected="selected">Australia</option> 澳大利亚 您可以执行以下操作: <?php $countries = array('AU' => 'Australia', 'AF' =>

当在页面上显示表单供用户编辑信息,并且表单由下拉框组成时,如何循环通过下拉框中的选择来选择其预定义的mySQL条目

比如说

用户国家:澳大利亚

我将如何在国家列表中进行搜索,即:制作:

澳大利亚
变成

<option value="AU" selected="selected">Australia</option>
澳大利亚

您可以执行以下操作:

<?php
$countries = array('AU' => 'Australia', 'AF' => 'Afghanistan', ...);
$selected = 'AU';
foreach ($countries as $code => $label) {
    echo '<option value="' . $code . '"';
    if ($selected == $code) {
        echo ' selected="selected"';
    }
    echo '>' . $label . '</option>';
}
?>


不是最漂亮的,但你明白了。正如Shakti所建议的,如果值位于数据库中,而不是在代码中间的一个大数组中,则更容易维护。

,你可以做一些类似的事情:

<?php
$countries = array('AU' => 'Australia', 'AF' => 'Afghanistan', ...);
$selected = 'AU';
foreach ($countries as $code => $label) {
    echo '<option value="' . $code . '"';
    if ($selected == $code) {
        echo ' selected="selected"';
    }
    echo '>' . $label . '</option>';
}
?>


不是最漂亮的,但你明白了。正如Shakti所建议的,如果值位于数据库中,而不是在代码中间的一个大数组中,则更容易维护。

可以是这样的:

<?php
//your query here
$sql = "SELECT * FROM countries ORDER BY code ASC";
$result_set = $database->query($sql);

while($country = $database->fetch_array($result_set)) {
    if ($country["code"] == "AU"){
        echo "<option value=\"{$country['code']}\" selected=\"selected\">{$country['name']}</option>";
}
    else {
        echo "<option value=\"{$country['code']}\">{$country['name']}</option>";
    }       
?>

可以是这样的:

<?php
//your query here
$sql = "SELECT * FROM countries ORDER BY code ASC";
$result_set = $database->query($sql);

while($country = $database->fetch_array($result_set)) {
    if ($country["code"] == "AU"){
        echo "<option value=\"{$country['code']}\" selected=\"selected\">{$country['name']}</option>";
}
    else {
        echo "<option value=\"{$country['code']}\">{$country['name']}</option>";
    }       
?>

不要分别为所有国家/地区创建每个选项。尝试更好的方法为国家创建DB表。在它们之间循环以返回下拉列表。获取以前选择的值并与列表进行比较,并回显“selected”不要为所有国家/地区分别创建每个选项。尝试更好的方法为国家创建DB表。在它们之间循环以返回下拉列表。获取以前选择的值并与列表进行比较,并回显“已选择”