自动加载下拉菜单值

时间:2014-10-30 12:50:30

标签: php mysql

我有一个问题,我有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 个答案:

答案 0 :(得分:1)

Here您可以找到一个非常容易理解的教程,了解如何执行此操作。

首先,这不是严格的PHP可以做的事情。您需要刷新页面才能填充其他下拉列表。从这里,我们得出结论,你必须使用Ajax。或者JQuery .ajax()就此而言。无论你觉得使用起来感觉更舒服。

以下是步骤:

  1. 当第一个下拉列表被选中时,你将有一个onClick事件,它将加载一个JS函数

  2. JS函数将对包含第二个下拉列表代码的php文件进行AJAX调用。当然,您必须将省ID传递给JS函数并转发到php文件。

  3. 在PHP文件中,您将根据您发送给他的ID,从DB中选择具有正确信息的选择,您猜对了。对WHERE条款有用,对吧?

  4. 最后一个PHP函数显示下拉列表,然后你去了:)

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

答案 1 :(得分: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());
});

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