【问题标题】:dynamic drop down box from mysql来自mysql的动态下拉框
【发布时间】:2013-06-05 09:46:34
【问题描述】:

我有 3 个输入字段,每个字段都从自己的表中获取数据,分别称为旅游类型、国家和目的地,如图所示

    <label>Tour Type</label>
    <select id="element_11" name="element_11" required> 
    <option value="" selected="selected">--Select--</option>
    <?php
        while($row=mysql_fetch_array($sql))
        {
          $tour_type_id=$row['tour_type_id'];
          $name=$row['tour_name'];
          echo "<option value='$tour_type_id'>$name</option>";
        }
        ?>
    </select>



    <label>Country</label>
    <select id="element_12" name="element_12" required>
    <option value="" selected="selected">-- Select --</option> 
    <?php 
    $sql=mysql_query("Select countries_id,countries_name from countries");
        while($row=mysql_fetch_array($sql))
        {
          $cid=$row['countries_id'];
          $name=$row['countries_name'];

          echo "<option value='$cid'>".$name."</option>";
        }
        ?>
        </select>


    <label>Destination</label>
    <select id="element_13" name="element_13" required> 
        <option value="" selected="selected">-- Select --</option>
    <?php 
    $sql=mysql_query("Select destination_id,destination_name from destination");


        while($row=mysql_fetch_array($sql))
        {
          $destination_id=$row['destination_id'];
          $name=$row['destination_name'];

          echo "<option value='$destination_id'>".$name."</option>";
        }
        ?>

    </select>
    </div> 
    </li>

这是我得到的 3 个数据库表,即旅游类型、国家和目的地:

我试图让每个字段相互依赖,更像是一个依赖下拉框。例如,如果我选择游览类型,则第二个下拉菜单应填充仅与从第一个下拉菜单中选择的内容相关的选项,依此类推。在这种情况下,例如,如果我选择文化,那么第二个下拉菜单应该只显示 amsterdam 和 belgium。

谁能帮帮我。

【问题讨论】:

  • $ AJAX 会为你做的。
  • 1) 如果数据不多,用户量少,可以选择所有数据,根据需要构建所有选择字段,根据需要显示/隐藏。不推荐哦! 2) AJAX:使用ajax只选择特定的数据,并根据接收到的数据重建选择元素。为了获得最快的开发时间,我建议您使用 jQuery 进行 ajax 查询和 DOM 操作。
  • 抱歉我之前没用过ajax,不知道怎么组合

标签: php html


【解决方案1】:

请通过此链接dependent dropdown using jquery ajax

他如何维护实体之间的关系

让我解释一下,如果您想要基于巡演的countries,那么您需要将country tabletour table 关联起来,因为您在图像中显示了country table,它只包含两列countries_id 和@987654328 @您必须再添加一列tour_type_id,当您选择任何游览时,您将获得tour_type_id,那么您的查询应该是

SELECT * FROM `countries`  where `tour_type_id` = 1 //this is the id you will get from the tour_type select box

这将使用country_id 填充与此表相关的目的地的相关国家/地区相同的情况

希望有意义

【讨论】:

  • 这看起来是一个很好的教程。我试图以同样的方式实现的东西。我会看看这个谢谢
  • 我刚刚意识到他的所有数据都在一张表上。但我有 3 个单独的表。我需要所有 3 个表相互依赖。
  • 对不起,但我想我仍然对此感到困惑
  • 请参考这个更新的问题stackoverflow.com/questions/16938885/…。我认为这简化了我要解释的内容。
【解决方案2】:

由于我是 asp.net 开发人员,我建议您将第二个和第三个下拉列表放在更新面板(ajax 更新面板)中,然后在您的第二个下拉查询中使其类似于 $sql=mysql_query("Select countries_id, country_name 来自国家的 tour_type_id="+element_11.SelectedItem.Value+"");它将选择那些 tour_type_id 与您在第一个下拉菜单中选择的值相同的值,同样的逻辑也可以在第三个下拉菜单中使用

【讨论】:

    【解决方案3】:

    有两种方法可以解决这个问题。你可以使用 php 刷新页面,第二种方法是使用 jQuery ajax 来相应地填充字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-31
      • 1970-01-01
      • 2016-03-09
      • 1970-01-01
      • 2012-03-26
      • 2010-11-22
      • 2014-01-04
      • 2020-06-22
      相关资源
      最近更新 更多