【发布时间】:2014-11-29 02:22:27
【问题描述】:
我正在尝试编写一个由 3 部分组成的下拉列表选择菜单。第二个下拉列表依赖于第一个列表中的数据,第三个下拉列表依赖于第二个列表中的数据。我曾尝试使用 post 来执行此操作,但每次提交表单时,它都会清除上一个下拉框中的数据,如果我尝试使用会话变量来存储数据,它也会在表单提交时被重置。
这是我的代码:
//get a list of course subjects from the database
$subjects = mysqli_query($con,"SELECT subject FROM db.course;");
echo "<select name='getSubject' onchange='this.form.submit()'>";
echo '<option value="" style="display:none;" ></option>';
while ($row=mysqli_fetch_array($subjects) )
{
echo "<option value='" . $row['subject'] . "' >". $row['subject'] ."</option>"; //creates drop down list of subjects
}
echo "</select> ";
$selectedSubject = $_POST['getSubject'];
echo $selectedSubject;
//get a list of course titles from the database, based on subject chosen
$courses = mysqli_query($con,"SELECT title FROM db.course WHERE subject = '$selectedSubject';");
echo "<select name = 'getTitle' style='width:500px;' onchange='this.form.submit()'>";
echo '<option value="" style="display:none;"></option>';
while ($row=mysqli_fetch_array($courses) )
{
echo "<option value='" . $row['title'] . "' >". $row['title'] ."</option>"; //creates a drop down list of course titles
}
echo "</select> ";
$selectedTitle = $_POST['getTitle'];
echo "$selectedTitle";
//get a list of section numbers from the database, based on course chosen
$sections = mysqli_query($con,"SELECT section FROM db.course WHERE title = '$selectedTitle';");
echo "<select name = 'getSection' style='width:200px;' onchange='this.form.submit()'>";
echo '<option value="" style="display:none;"></option>';
while ($row=mysqli_fetch_array($sections) )
{
echo "<option value='" . $row['section'] . "' >". $row['section'] ."</option>"; //creates drop down list of course sections
}
echo "</select>";
$selectedSection = $_POST['getSection'];
$course = mysqli_query($con,"SELECT title, subject, section FROM db.course WHERE subject = '$selectedSubject';");
?>
从 getTitle 和 getSection 进行选择后,如何保持 getSubject 中的数据完整无缺?选择最后一个下拉框后,我希望它打印菜单下方的所有三个选项。我已经为此苦苦挣扎了几个小时,不确定我的键盘还能承受多少滥用。
提前感谢您的帮助。
【问题讨论】:
标签: php session post drop-down-menu