我有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,国家和目的地:
我试图使每个字段彼此依赖,更像是依赖的下拉框。例如,如果我选择一个游览类型,那么第二个下拉列表应该填充仅与从第一个下拉列表中选择的内容相关的选项,依此类推。在这种情况下,例如,如果我选择文化,那么第二次下拉应该只显示阿姆斯特丹和比利时。
任何人都可以帮我这个。
答案 0 :(得分:1)
请浏览此链接dependent dropdown using jquery ajax
他如何维持实体之间的关系
让我解释一下,如果你想根据游览countries
,那么你需要将country table
与tour table
联系起来,因为你只在其中包含country table
图像两列countries_id
和countries_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)
这个链接有一个很好的例子