2014-10-30 95 views
0

我有一个问题,我有3个下拉菜单,并且它们都连接在一起,我创建了一个系统,可以根据用户的服务和城市自动显示城市的邮政编码。自动加载下拉菜单值

例如,用户选择省A,那么这里是我的问题,我将如何做到这一点,以便当用户选择省A时,系统将显示省A内的所有城市?我已经有了一个完整的我的国家的邮政编码数据库,选择城市后,邮政编码会自动显示在一个文本框中,该文本框不应该是可编辑但未禁用的,禁用文本框会忽略它的内容,

这里是我的全省查询,

$query = 'SELECT DISTINCT major_area FROM zipcodes GROUP BY major_area ORDER BY major_area asc '; 
         $result = mysql_query($query) or die(mysql_error()); 
         echo "<select name='categories' required>"; 
         echo "<option value =''>Select Province</option>"; 
         while ($row = mysql_fetch_array($result)){ 
          $major_area = $row['major_area']; 
          echo "<option value='$major_area'>$major_area</option>"; 
         } 

         echo "</select>"; 

这里是我的城市查询下拉,major_area显示与项“ABRA”

$query = "SELECT DISTINCT city FROM zipcodes WHERE major_area='ABRA' ORDER BY city asc"; 
         $result = mysql_query($query) or die(mysql_error()); 
         echo "<select name='categories' required>"; 
         echo "<option value =''>Select City</option>"; 
         while ($row = mysql_fetch_array($result)){ 
          $city = $row['city']; 
          echo "<option value='$city'>$city</option>"; 
         } 

         echo "</select>"; 

,当然还有一个例子邮政编码。我还没做过,但我知道如何查询它。我只需要使它自动,但我不知道如何。

所有帮助将不胜感激,谢谢你提前。

+2

依赖下拉列表教程怎么样? – Strawberry 2014-10-30 12:56:46

回答

1

Here你可以找到一个非常容易理解的教程如何做到这一点。

首先,这不是严格按照PHP进行的操作。您需要刷新页面才能填充其他下拉列表。从这里,我们得出你必须使用Ajax的结论。或者是关于这个问题的JQuery .ajax()。无论你觉得什么更舒适使用。

步骤如下:

  1. 当第一个下拉被选中,你会对它的onClick事件,这将加载JS功能

  2. JS的功能将有一个AJAX调用到包含第二个下拉列表的代码的php文件。当然,你必须将省份ID传递给JS函数并转发到php文件。

  3. 对于PHP文件,您将根据您发送给他的ID从DB中选择具有正确信息的选定对象。对WHERE子句有用,对吗?

  4. 最后的PHP函数显示下拉菜单和你去:)

希望这有助于!阅读我提供的文档,它会帮助你并牢记:如果你只是要求SO上的人为你提供现成的代码,你将不会学到任何东西。您可以为您做的最好的事情是阅读文档,以便下次遇到此问题时,您将知道如何自己解决问题,而不是回到搜索答案或发布重复问题;)

0

因为你可能不想预先加载所有的城市数据(因为它可能相当多的数据),你可能会想要一些js做一个AJAX调用来填充城市下拉选择该省。假设你使用jQ,像这样:

function getCityOptions(province) { 
    $.getJSON('/getcityjson', { 'province':province }) 
    .done(function(data) { 
     // Update City select with new options here 
    } 
} 

$('#province_select).change(function() { 
    getCityOptions($('#province_select').val()); 
}); 

不是一个完整的例子,但应该让你开始。