php - 在 php 中从数据库创建一个具有未知数量值的下拉列表

标签 php mysql

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

一旦选择了一个选项,就会出现另一个下拉列表,其中包含选择第一项的该行中的其他值。在我的中,他们首先必须选择时间,然后在选择时间后,与该时间关联的 id 应该位于该下拉列表中,但是只有最后一个值是下拉列表保存在 session 中,即使该值不是没有为第一个和第二个下拉列表选择。

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

 <?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;
       }
       ?>

最佳答案

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

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

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

解决方案提示:
要从选择动态地将值保存到 PHP session 变量,请查看 AJAX(也许与 jQuery 结合使用)。
PHP 没有这样的动态客户端行为 - 一旦呈现页面,PHP 的工作就完成了,直到您加载下一个页面或使用 AJAX 请求。

关于php - 在 php 中从数据库创建一个具有未知数量值的下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30394195/

相关文章:

php - Woocommerce - 当购物车中没有任何内容时 wc_add_notice() 不添加到 session

php - 使用js将文本插入数据库时​​出现问题

php - 从 php 调用的 python 脚本连接到数据库

python - 如何将编码值存储到数据库中

MYSQL替换部分表

mysql - 过滤掉 MySQL 中的唯一行

php - 在多维数组上使用 preg_match 返回键值数组

php - Cakephp 搜索 MySQL

php - Laravel:如何在具有引用表的两个表之间建立关系

php - Yii CDbCommand 绑定(bind)非引用参数