在下拉列表中加载HTML php预选选项值

时间:2017-04-04 09:06:21

标签: php html mysql

我正在努力解决一些简单的事情,我在Stack上发现了类似的问题,但我无法使解决方案有效。

我有一个html / php表单来编辑用户的详细信息。因为它正在编辑已有的信息,所以下拉列表需要从mysql数据库预加载用户的组织。由于db规范化,我将组织详细信息放在用户表的单独表中,因此用户的记录只保存其组织的ID。

代码获取用户的信息并填充表单进行编辑,但我无法获得组织下拉列表以显示用户的组织。我需要它预先选择用户的组织(如果适用),但仍然有选项列表来改变它。

<td align="right">Organisation:</td>
            <td>
            <select name="user_org">
                <option>Select the organisation</option>

                <?php

                    //query to get the organisations from the db
                    $get_org = "SELECT * FROM organisations";

                    $run_org = mysqli_query($con, $get_org);

                   while ($row_org=mysqli_fetch_array($run_org)){

                        $org_id = $row_org['org_id'];
                        $org_name = $row_org['org_name'];


                    echo "<option value='$org_id';>$org_name</option>";
                    }?>


            </select>

2 个答案:

答案 0 :(得分:0)

默认情况下,您可以选择一个选项作为选定的选项the "selected" attribute。在您的情况下,您可以在循环内检查当前组织是否是用户的组织。并添加“selected”属性。

例如,假设您的用户的组织ID存储在变量user_org中。

while ($row_org=mysqli_fetch_array($run_org)){
    $org_id = $row_org['org_id'];
    $org_name = $row_org['org_name'];

    echo "<option value='$org_id'";
    if($org_id === $user_org) echo " selected";
    echo ">$org_name</option>" . PHP_EOL;
}?>

然后,如果组织的ID与用户的ID匹配,则默认选择该选项。

答案 1 :(得分:0)

尝试这样的事情:

while ($row_org=mysqli_fetch_array($run_org))
{
    $org_id = $row_org['org_id'];
    $org_name = $row_org['org_name'];

    $selected = '';
    if( $org_id == $already_selected_value )
    {
        $selected = 'selected="selected"';
    }

    echo <option value="'.$org_id.'" '.$selected.'>'.$org_name.'</option>';
}

说明:最初$selected为空,但当条件变为true时,其值设置selected option属性,以使该选项默认为选中状态。< / p>