PHP - 保存提交后选择选项值

时间:2017-03-10 12:20:48

标签: php mysql

我有一个下拉菜单,其中列出了关联的ID'来自mysql数据库:

<fieldset>
<legend><strong>Change ID:</strong></legend>
<?php
$hostname = "localhost";
$username = "root";
$password = "";
$databaseName = "change_management";

$connect = mysqli_connect($hostname, $username, $password, $databaseName);
$query3 = "SELECT `change_id` FROM `change_request_tbl` WHERE (approval_disposition LIKE 'Requires Editing')";
$result3 = mysqli_query($connect,$query3);
?>

<select required name="change_id">
<option value="">Please specify...
<?php
while ($roww = mysqli_fetch_array($result3))
{
echo "<option value='".$roww['change_id']."'>".$roww['change_id']."</option>";
}
?>
</select>
<input type="submit" name="get" value="Get Details" class="btn">
</fieldset><br><br><br>

当用户点击&#34;获取详细信息&#34;下拉列表将恢复为&#34;请指定&#34;。我发现了许多如何在提交后保存值的示例,但似乎没有一个适用于我的代码,因为我从数据库中获取值。 无论如何以当前格式保存最后输入的值?

1 个答案:

答案 0 :(得分:1)

当用户提交表单时,表单值change_id具有您要查找的值。因此,在填充option元素时,您可以检查它们中的任何一个是否与提交的内容相匹配,并将其设置为选中。像这样:

if (isset($_POST['change_id']) && $roww['change_id'] == $_POST['change_id']) {
    echo "<option selected value='".$roww['change_id']."'>".$roww['change_id']."</option>";
} else {
    echo "<option value='".$roww['change_id']."'>".$roww['change_id']."</option>";
}

或者如果你想在一行上使用它(使用三元条件运算符):

echo "<option ".((isset($_POST['change_id']) && $roww['change_id'] == $_POST['change_id']) ? "selected" : "")." value='".$roww['change_id']."'>".$roww['change_id']."</option>";