繁体   English   中英

在php中使用未知数量的值在php中创建一个下拉列表

[英]Creating a drop down list in php from database with unknown amount of values

我在php中创建一个下拉列表,其中显示了该表中该列的每个项目。

一旦选择了一个选项,就会出现另一个下拉列表,以及从中选择了第一项的那一行中的其他值。 在我的数据库中,他们首先必须选择时间,然后在选择时间后,应该将与该时间关联的ID放在该下拉列表中,但是只有最后一个值是该下拉列表,即使该会话没有并没有选择第一个和第二个下拉列表。

我不明白为什么选择的值不是存储的值:

 <?php
   $select = '<select name = "flytime" size = "1">';
    while ($row = mysql_fetch_array($rs))
    {

    $select.= '<option value="' .$row["ID"].'" >     '.$row['flytime'].' </option>';
     $_SESSION["flytime"] =  $row["flytime"]; 
    }

     $time = $_SESSION["flytime];

     $select.= '</select>';
      echo $select;
     echo $time;
     ?>
     <p><input type="submit"  value="submit" name ="submit" /></p>
      <?php 
      mysql_close($conn); ?>

      <?php
      $conn = mysql_connect("localhost");
      mysql_select_db("hello", $conn)
      or die ('Database not found ' . mysql_error() );
      $sql = "SELECT * FROM fly WHERE flytime = '".$flytime ."';";
      $rs = mysql_query($sql, $conn)
      or die ('Problem with query' . mysql_error());
       ?>

      <?php

      if(isset($_POST["submit"]))
         {
        $select = '<select name = "ID" size = "1">';
        while ($row = mysql_fetch_array($rs))
         {

        $select.= '<option value="' .$row["flytime"].'" >  '.$row['ID'].' </option>';
        $_SESSION["ID"] =  $row["ID"] ; 
         }

       $select.= '</select>';
       echo $select;
       }
       ?>

您只能看到存储在会话变量中的选择中的最后一个值,因为您正在循环中覆盖会话变量的值:

while ($row = mysql_fetch_array($rs))
{
    /* ... */
    $_SESSION["flytime"] =  $row["flytime"]; 
}

在上面的示例中,您经常使用相同的变量来保存$row["flytime"] 该变量仅包含一个值,这就是为什么您只保存循环中出现的最后一个值的原因。

解决方案提示:
要通过选择将值动态保存到PHP会话变量中,请查看AJAX (可能与jQuery结合使用)。
PHP没有这样的动态客户端行为-呈现页面后,PHP的工作就会完成,直到您加载下一页或使用AJAX请求为止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM