![](/img/trans.png)
[英]How to select the second option based on the first option (both select option are from the database)
[英]How to select option from select list, that then changes the second select list, depending on database records?
我有一個帶有幾個選擇下拉列表的表單。 應該選擇第一個選項(夏季,春季或冬季),然后第二個下拉列表將顯示在此期間上課的學生。
我目前在對php的sql請求中使用一個PHP變量(保留第一個選擇)-這可能是我的問題,但我看不到我的生活的解決方案。
我願意接受所有想法。 我已經在StackOverflow上查看了一些類似的問題,但似乎沒有一個適合我的問題。
<div class="form-group col-md-12">
<select name="classe" id="classe" class="form-control">
<option value="">Sélectionnez la classe</option>
<?php
while ($rows = $result->fetch_assoc()) {
$classe = $rows['classe'];
echo "<option value='$classe'>$classe</option>";
}
?>
</select>
</div>
<div class="form-group col-md-12">
<select name="etudiant" id="etudiant" class="form-control">
<option value="">Sélectionnez l'étudiant'</option>
<?php
while ($rows3 = $result3->fetch_assoc()) {
$etudiant = $rows3['name'];
echo "<option value='" . $rows3['id'] . "'>$etudiant</option>";
}
?>
</select>
</div>
$classe = filter_input(INPUT_POST, "classe");
$askEtudiant = new mysqli('localhost', 'root', '', 'attendance');
$result3 = $askEtudiant->query("SELECT id, name FROM users WHERE role = 'etudiant' AND classe = '$classe'");
我沒有包括轉換信息,因為我可以看到它的工作原理。
第一個選擇列表稱為“班級”,具有學生一年中在校園中的時間。
第二個列表“學生應列出數據庫中先前選定時期內已注冊的那些學生。
對於信息:我目前在第二個下拉列表中返回的結果是在數據庫中沒有為其分配時段(夏季等)的一名學生“學生”!
預先感謝您的任何幫助...
它稱為級聯下拉列表。
基本上,您將希望在第一個下拉列表的onChange事件上觸發AJAX調用,並從API響應中填充第二個下拉列表。
HTML文件中的解決方案腳本
函數showUser(str){if(str ==“”){document.getElementById(“ etudiant”)。innerHTML =“”; 返回; } if(window.XMLHttpRequest){// IE7 +,Firefox,Chrome,Opera,Safari的代碼xmlhttp = new XMLHttpRequest(); } else {// IE6,IE5的代碼xmlhttp = new ActiveXObject(“ Microsoft.XMLHTTP”); } xmlhttp.onreadystatechange = function(){if(this.readyState == 4 && this.status == 200){document.getElementById(“ etudiant”)。innerHTML = this.responseText; }} xmlhttp.open(“ GET”,“ getUsers.php?q =” + str,true); xmlhttp.send(); }
SEPERATE FILE
<?php
require_once("connection.php");
$id = $_GET["q"];
$result3 = "SELECT id, name FROM users WHERE classe = :classe";
$stmt = $conn->prepare($result3);
$stmt->bindParam(":classe", $_GET['q']);
$stmt->execute();
$users = $stmt->fetchAll();
echo "<option value=\"\">Sélectionnez l'étudiant'</option>";
foreach ($users as $key => $value) {
echo "<option value='" . $value['id'] . "'>" . $value['name'] . "</option>";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.