我正在尝试将数据从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数据库中提取数据,选择一个项,并在根据我的选择显示表时让它保持选中,而不需要页面刷新,所选的项也会从下拉列表中删除。
发布于 2017-05-01 10:36:11
当项目被选中时,使用<option>
标记的<option>
布尔属性(并从第一个选项(即具有空值的选项)中删除它)。当代码与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>
参见在这支小提琴中演示的
https://stackoverflow.com/questions/43724222
复制相似问题