Вариант раскрывающегося списка не выбран

0

У меня есть следующий код, который создает два выпадающих меню, которые заполняются значениями из базы данных. Первое выпадающее меню печатает выбор пользователя, а второй - нет. Как я могу это исправить? PS Я не хочу использовать AJAX

 //first drop down
 echo<<<FORMSTART
<form name= "modules" method= "post">
<select name = "modules" onChange="document.topic_list.submit()">
<option value = "None">Choose module</option>
FORMSTART;

$stmt = $pdo->query("SELECT DISTINCT Module from timetable");

 //populate drop down menu
 while ($row = $stmt->fetch()){

    echo "<option value= '" . $row['Moudle'] . "'>". $row['Module'] . "</option>";
 }

 //End of first form
 echo<<<FORMEND
 </select>

  </form>
  FORMEND;

 $selected_module = $_POST["Module"]; 
 echo "$selected_module Selected" ; 

  //second drop down
  echo<<<FORMSTART
  <form name= "time_list" method= "post">
 <select name = "Time selected:">
 <option value = "None">Select a Time</option>
 FORMSTART;

   $stmt = $pdo->query("SELECT Times FROM Timetable WHERE Module='" . $selected_module. "' AND capacity != 0"); 

 //populate drop down menu
 while ($row = $stmt->fetch()){
    echo "<option value= '" . $row['Times'] . "'>". $row['Times'] . "</option>";
 }

 //End form for second drop down which wont print

  $selected_time = $_POST["time_list"]; 
 echo $selected_time;  //this wont print, im guessing because it isnt stored
 echo<<<FORMEND
 </select>
 </form>
 FORMEND;
Теги:
pdo

1 ответ

0
             //first drop down
         echo<<<FORMSTART
         <form name= "modules" method= "post">
         <select name = "modules" onChange="document.topic_list.submit()">
         <option value = "None">Choose module</option>
         FORMSTART;

         $stmt = $pdo->query("SELECT DISTINCT Module from timetable");

         //populate drop down menu
         while ($row = $stmt->fetch()){

            echo "<option value= '" . $row['Moudle'] . "'>". $row['Module'] . "</option>";
         }

         //End of first form
         echo<<<FORMEND
         </select>

          </form>
          FORMEND;

         $selected_module = $_POST["Module"]; 
         echo "$selected_module Selected" ; 

          //second drop down
          echo<<<FORMSTART
          <form name= "time_list" method= "post">
         <select name = "time_list">
         <option value = "None">Select a Time</option>
         FORMSTART;

           $stmt = $pdo->query("SELECT Times FROM Timetable WHERE Module='" . $selected_module. "' AND capacity != 0"); 

         //populate drop down menu
         while ($row = $stmt->fetch()){
            echo "<option value= '" . $row['Times'] . "'>". $row['Times'] . "</option>";
         }

         //End form for second drop down which wont print


         echo<<<FORMEND
         </select>
$selected_time = $_POST["time_list"]; 
        echo $selected_time;  /*you need to ensure that you put this after </select> tag. It can also work if you put it after the closing form tag </form>*/
         </form>
         FORMEND;

Основная проблема, с которой вы столкнулись, заключается в попытке распечатать выбранный тег. Если вы посмотрите на первый снимок, который печатает, ваш echo-оператор после закрытия тега select. Вы можете печатать или эхо в теге select как значение параметра или метку, а не как текст, который будет отображаться на странице.

Еще одна вещь, на которую нужно обратить внимание - это имя, которое вы здесь $_POST["time_list"]; <select name = "Time selected:"> который не коррелирует с $_POST["time_list"];

Это должно решить проблему.

Сделайте эту настройку и наслаждайтесь !!!

  • 0
    Я попробовал ваше предложение, и оно только дало мне синтаксическую ошибку
  • 0
    Даже после перемещения строки кода $selected_time = $_POST["time_list"]; echo $selected_time; @Horlarme
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню