【问题标题】:Drop Down Option not being selected未选择下拉选项
【发布时间】:2018-09-17 15:19:57
【问题描述】:

我有以下代码构建两个由数据库中的值填充的下拉菜单。第一个下拉菜单打印用户选择,但第二个不打印。我怎样才能解决这个问题? P.S 我不想使用 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;

【问题讨论】:

    标签: php html mysql pdo


    【解决方案1】:
                 //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 标记之后。 您只能在选择标签中打印或回显作为选项值或标签,而不能作为要显示在页面上的文本。

    要查看的另一件事是您在此处给出的名称 &lt;select name = "Time selected:"&gt;$_POST["time_list"]; 无关

    这应该可以解决问题。

    做出调整,尽情享受吧!!!

    【讨论】:

    • 我试过你的建议,但它只给了我一个语法错误
    • 即使在移动代码行之后$selected_time = $_POST["time_list"]; echo $selected_time;@Horlarme
    • 我已经更新了我的答案。将选择标签的名称更改为“time_list”。问候
    • 我按照你说的做了,但什么也没发生 :( @Horlarme
    • 您是否遇到另一个错误或之后会发生什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-11
    • 1970-01-01
    相关资源
    最近更新 更多