我正在尝试将数据从MySQL数据库中提取到我已成功完成的下拉列表中。但问题是,当加载数据并进行选择时,应根据所做的选择显示表格。它可以工作,但是当显示表格时,所选项目不会在下拉列表中保持选中状态 - 它会刷新页面,下拉列表将返回默认选定值。
<form method="post">
<label style="padding-left:13%;">Select Course: </label>
<?php
$query=mysqli_query($dbc,"select * from courses");
echo "<select class='form-control' name='course_code' style='height:50px; width:300px;' onchange='this.form.submit()' >";
echo "<option value='' selected='selected'>-Select-</option>";
while($course_code=mysqli_fetch_row($query))
{
?>
<option class="sel" value="<?php echo $course_code[0];?>"><?php echo $course_code[1]; ?> </option>;
<?php
}
echo "</select>";?>
</div> <!--col-lg-4-->
</form>
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$ccode=(isset($_POST['course_code']) ? $_POST['course_code'] :null);
$_SESSION['ccode']=$ccode;
?>
我想从下拉列表中的MySQL数据库中提取数据,选择一个项目,并在根据我的选择显示表格时保持选中状态而不刷新页面,并且所选项目从下拉中删除 - 列表。
答案 0 :(得分:0)
在选择项目时使用<option>
标记的selected布尔属性(并从第一个选项中删除它 - 即具有空值的选项)。当代码与POST数据中的值匹配时,请在给定选项的标记中包含 selected
。
while($course_code=mysqli_fetch_row($query))
{
$selected = '';
if ($course_code[0] == $_POST['course_code']) {
$selected = 'selected';
}
?>
<option class="sel" value="<?php echo $course_code[0];?>" <?php echo $selected;?>><?php echo $course_code[1]; ?> </option>;
输出(选择数据库查询的第二个选项后):
<select class="form-control" name="course_code" style="height:50px; width:300px;" onchange="this.form.submit()">
<option>-Select-</option>
<option class="sel" value="phys">Physics </option>;
<option class="sel" value="mth" selected>Math </option>;
</select>
中演示的内容