下拉列表以影响另一个下拉列表结果 - 使用PHP查询

时间:2011-09-03 14:51:08

标签: php mysql drop-down-menu

我有2个下拉菜单,这两个菜单都从我的数据库中获取它们的值。

2个下降的是 - Town&县。

显然,只有某些城镇与某些县有关。

为了捕获它,它们存储在数据库中:

  1. 利兹,莫利
  2. 利兹,教堂镇
  3. 伦敦,埃塞克斯等..
  4. 我需要强制用户首先选择县(我通过禁用/启用来完成)。但是,在选择County时,我需要刷新第二个下拉框,其中包含数据库中相关的“Town”值。

    “获得城镇”的当前代码是这样的:

    echo "<option value='0' >Choose a Town</option>";
    $town_se=$_SESSION['town'];
    if(isset($county_se)){
        $locat=mysql_query("SELECT DISTINCT town_name FROM locations WHERE county_name='$county_se'");
    }else{
        $locat=mysql_query("SELECT DISTINCT town_name FROM locations ");
    }
    while($row=mysql_fetch_assoc($locat)){ 
        $town=$row['town_name'];
        echo "<option value='$town' >$town</option>";
    }
    

    当然,这不起作用!是否有更简单的方法来复制第一次下拉的结果?

    非常感谢提前。

1 个答案:

答案 0 :(得分:1)

我很难解码示例代码中发生的事情。但只是为了确保我们在同一页面上...... PHP是服务器端,HTML是客户端。如果没有中间的东西,这两者就无法互动,比如新的页面请求,javascript或AJAX。

如果您呈现的数据大小合理,我可能只是建议从一开始就将所有数据放入HTML中,但隐藏它。也就是说,为每个县的城镇创建一个下拉列表,但在用户选择一个县之前将其全部隐藏起来。 (需要一些JavaScript)

另一种常见的解决方案是在用户选择县时简单地提交(并刷新)页面,因此,您生成一个新页面,其中城镇下拉列表中填充了该县的城镇。 (需要一些JavaScript)

如果你想要真正的高科技,你可以使用AJAX并在用户选择一个县时动态地将数据加载到第二个下拉列表中。虽然这要求您对PHP和JS有很好的理解。