Сохранить значение из раскрывающегося списка после публикации

Я пытаюсь написать меню выбора из 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> &nbsp;";

$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> &nbsp;";

$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';");?>

Как я могу сохранить данные из getSubject нетронутыми после выбора из getTitle и getSection? после того, как выбрано последнее выпадающее меню, я бы хотел напечатать все три варианта под меню. Я боролся с этим уже несколько часов и не уверен, сколько еще ошибок может принести моя клавиатура.

Заранее благодарю за любую помощь.

1

Решение

Добавьте условие в цикл, где вы печатаете параметры, которые используют selected аргумент, если это опция, выбранная при отправке.

while ($row=mysqli_fetch_array($subjects)) {
if($_POST['getSubject'] == $row['subject']) $s = " selected"; else $s = "";
echo "<option value='{$row['subject']}'$s>{$row['subject']}</option>";
}

while ($row=mysqli_fetch_array($courses)) {
if($_POST['getTitle'] == $row['title']) $s = " selected"; else $s = "";
echo "<option value='{$row['title']}'$s>{$row['title']}</option>";
}

while ($row=mysqli_fetch_array($sections)) {
if($_POST['getSection'] == $row['section']) $s = " selected"; else $s = "";
echo "<option value='{$row['section']}'$s>{$row['section']}</option>";
}

Надеюсь это поможет.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]