来自mysql的动态下拉框

时间:2013-06-05 09:46:34

标签: php html

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

    <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个数据库表,分别是tourtype,国家和目的地:

enter image description here

enter image description here

enter image description here

我试图使每个字段彼此依赖,更像是依赖的下拉框。例如,如果我选择一个游览类型,那么第二个下拉列表应该填充仅与从第一个下拉列表中选择的内容相关的选项,依此类推。在这种情况下,例如,如果我选择文化,那么第二次下拉应该只显示阿姆斯特丹和比利时。

任何人都可以帮我这个。

4 个答案:

答案 0 :(得分:1)

请浏览此链接dependent dropdown using 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

填充与此表相关的目的地的相关国家/地区相同的案例

希望它有意义

答案 1 :(得分:0)

有两种方法可以单独使用..你可以使用php和页面刷新,第二种方式使用jQuery ajax来相应地填充字段。

答案 2 :(得分:0)

因为我是一名asp.net开发人员,我可以建议你将第二个和第三个下拉放在更新面板(ajax更新面板)中然后在第二个下拉查询中使它像$ sql = mysql_query(“选择countries_id,来自tour_type_id =“+ element_11.SelectedItem.Value +”“)的国家/地区的countries_name;它将选择其tour_type_id与您在第一个下拉列表中选择的相同的值,同样的逻辑也可以在第3个下拉列表中使用

答案 3 :(得分:0)

这个链接有一个很好的例子

Jquery Dynamic SelectBox