我正在努力解决一些简单的事情,我在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>
答案 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>