2017-05-01 14 views
0

MySQLデータベースからドロップダウンリストにデータをプルしようとしています。しかし、問題は、データがロードされて選択すると、その選択に基づいてテーブルが表示されることです。それは動作しますが、テーブルが表示されているときに、選択された項目はドロップダウンリストで選択されたままではありません。ページを最新表示し、ドロップダウンリストはデフォルトの選択値に戻ります。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

使用 'AJAX'で実証参照します。 – julekgwa

+0

フォームが投稿される場所にコードを貼り付けることができます。 – julekgwa

+0

あなたは私にajaxを使ってそれを行う方法のサンプルコードを与えることができます。 @julekgwaはそのコードを見て、そこにエコータグのselect文をチェックします。 –

答えて

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

+0

私はあなたのコードを使用していますが、データベースからコースを1つだけ表示しています。配列を作成するのではなく、データベースを使って試してみてください。 –

+0

Hmm - 複数のオプションを選択できるようにしたいのですか? –

+0

複数のオプションを選択していませんが、ドロップダウンリストのデータベースからすべてのコースをプルしていないだけです。 –

関連する問題