0

我有 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。

谁可以帮我这个事。

4

3 回答 3

1

使用 jquery ajax 浏览此链接相关下拉列表

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

让我向您解释一下,如果您想countries基于游览,那么您需要将其关联起来country tabletour table因为您country table在图像中显示它仅包含两列countries_idcountries_name您必须再添加一列,即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

希望有意义

于 2013-06-05T09:53:38.097 回答
0

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

于 2013-06-05T09:52:17.653 回答
0

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

于 2013-06-05T09:58:49.183 回答