Php 如何从选择列表中选择选项,然后根据数据库记录更改第二个选择列表?
我有一个带有几个选择下拉列表的表单。应选择第一个选项(夏季、春季或冬季),然后第二个下拉列表将显示在此期间上课的学生 我目前在对PHP的sql请求中使用了一个PHP变量(包含第一个选择)——这可能是我的问题,但我看不到一个适合我一生的解决方案 我对所有的想法都持开放态度。我已经研究了StackOverflow上的一些类似问题,但似乎没有一个适合我的问题Php 如何从选择列表中选择选项,然后根据数据库记录更改第二个选择列表?,php,mysql,sql,drop-down-menu,Php,Mysql,Sql,Drop Down Menu,我有一个带有几个选择下拉列表的表单。应选择第一个选项(夏季、春季或冬季),然后第二个下拉列表将显示在此期间上课的学生 我目前在对PHP的sql请求中使用了一个PHP变量(包含第一个选择)——这可能是我的问题,但我看不到一个适合我一生的解决方案 我对所有的想法都持开放态度。我已经研究了StackOverflow上的一些类似问题,但似乎没有一个适合我的问题 <div class="form-group col-md-12"> <select name="classe" id
<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){
如果(str==“”){
document.getElementById(“etudiant”).innerHTML=“”;
返回;
}
if(window.XMLHttpRequest){
//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}else{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
document.getElementById(“etudiant”).innerHTML=this.responseText;
}
}
open(“GET”、“getUsers.php?q=“+str,true”);
xmlhttp.send();
}
分离文件
如果不想在不提交表单和重新加载页面的情况下执行此操作,则需要使用JavaScript和AJAX.Hi@Barmar。是的,我希望第二个下拉列表在选择第一个选项后立即准备好。因此,不提交表格。你知道从哪里开始吗?搜索词
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>";
}