将数据从mysql中拉入下拉列表,但在选择时不刷新

时间:2017-05-01 18:20:58

标签: javascript php jquery

我正在尝试将数据从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数据库中提取数据,选择一个项目,并在根据我的选择显示表格时保持选中状态而不刷新页面,并且所选项目从下拉中删除 - 列表。

1 个答案:

答案 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>

this phpfiddle

中演示的内容