为了账号安全,请及时绑定邮箱和手机立即绑定

如何从选择列表中选择选项,然后根据数据库记录更改第二个选择列表?

如何从选择列表中选择选项,然后根据数据库记录更改第二个选择列表?

PHP
吃鸡游戏 2021-08-28 16:30:46
我有一个包含多个选择下拉列表的表单。应选择第一个选项(夏季、春季或冬季),然后第二个下拉列表将显示在此期间上课的学生。我目前在对 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'");我没有包含 conncetion 信息,因为我可以看到它有效。第一个选择列表称为“classe”,包含学生在校园的时间。第二个列表“学生应列出数据库中在先前选择的时间段内注册的那些学生。信息:我目前在第二个下拉列表中返回的结果是数据库中没有分配给他的时间段(夏季等)的一名学生“学生”!在此先感谢您的帮助...
查看完整描述

2 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

它被称为级联下拉菜单。

基本上,您需要在第一个下拉列表的onChange事件上触发 AJAX 调用,并从 API 响应填充第二个下拉列表。


查看完整回答
反对 回复 2021-08-28
?
忽然笑

TA贡献1806条经验 获得超5个赞

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.


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>";

}


查看完整回答
反对 回复 2021-08-28
  • 2 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信