2016-08-26 19 views
0

我初學JavaScript的
我有一個包含類和輸入的列表,其中包含從表中數據列表name在MySQL過濾數據列表由平變化從PHP

在這裏我簡單的代碼選擇組件:

<select class="form-control" name="class" id="class" onchange="" value="--"> 
    <option>--</option> 
    <option>X NET 1</option> 
    <option>X NET 2</option> 
    <option>XI NET 1</option> 
    <option>XI NET 2</option> 
</select> 
<input type="text" class="form-control" name="name" id="name" list="checkName" autocomplete="off" required> 
<datalist id="checkName"> 
    <?php 
     $sql_siswa = "SELECT name,class from student order by name;"; 
     $result = $conn->query($sql_siswa); 
     if ($result->num_rows > 0) { 
      while($row = $result->fetch_assoc()){ 
       echo "<option value=\"".$row["name"]."\">"; 
      } 
     } 
    ?> 
</datalist> 

所以,我想如果我選擇類,datalist將檢索名稱學生從類過濾器通過PHP。 這裏過濾這樣的:

$sql_siswa = "SELECT name from student where class like '".$_POST["class"]."' order by name;"; 
$result = $conn->query($sql_siswa); 
if ($result->num_rows > 0){ 
    while($row = $result->fetch_assoc()){ 
     echo "<option value=\"".$row["name"]."\">"; 
    } 
} 

如何實現這種過濾器onchange? 對不起,我沒有嘗試任何東西,因爲我不知道該怎麼做。

回答

1

你應該嘗試AJAX做

<select class="form-control" name="class" id="class" onchange="ajax_change(this.value)" > 
<option value="">--</option> 
<option value="X NET 1">X NET 1</option> 
<option value="X NET 2">X NET 2</option> 
<option value="XI NET 1">XI NET 1</option> 
<option value="XI NET 2">XI NET 2</option> 
</select> 

在腳本

function ajax_change(str){ 
$.ajax({ 
     type: 'POST', 
     url: 'ajax.php', 
     data: {class: str}, 
     success: function (data) {    
      $("#checkName").html(data); 
     }, 
     error: function (xhr) { 
      //Do Something to handle error 
      alert("some error found"); 
     } 
    }); 
} 

在你ajax.php

//include connection 
if(isset($_POST["class"])){ 
$sql_siswa = "SELECT name from student where class like '".$_POST["class"]."' order by name;"; 
$result = $conn->query($sql_siswa); 
if ($result->num_rows > 0){ 
    while($row = $result->fetch_assoc()){ 
     echo "<option value=\"".$row["name"]."\">"; 
    } 
} 
} 
+0

等待分鐘。 – newbie

+0

是的,那太好了。 – newbie

+0

很高興聽到這個消息 –