Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 自动加载下拉菜单值_Php_Mysql - Fatal编程技术网

Php 自动加载下拉菜单值

Php 自动加载下拉菜单值,php,mysql,Php,Mysql,我有一个问题,我有3个下拉菜单,它们都是连接在一起的,我正在创建一个系统,该系统将根据用户的省区和城市自动显示城市的zipcode 例如,用户选择A省,那么我的问题是,我如何使它在用户选择A省时,系统将显示A省内的所有城市?我已经有了一个完整的国家zipcode数据库,在选择城市后,zipcode将自动显示在一个文本框中,该文本框不应编辑,但不能禁用,禁用文本框将忽略我记得的内容 这是我对该省的询问 $query = 'SELECT DISTINCT major_area FROM zipcod

我有一个问题,我有3个下拉菜单,它们都是连接在一起的,我正在创建一个系统,该系统将根据用户的省区和城市自动显示城市的zipcode

例如,用户选择A省,那么我的问题是,我如何使它在用户选择A省时,系统将显示A省内的所有城市?我已经有了一个完整的国家zipcode数据库,在选择城市后,zipcode将自动显示在一个文本框中,该文本框不应编辑,但不能禁用,禁用文本框将忽略我记得的内容

这是我对该省的询问

$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>";
$query='按主区顺序按主区asc从zipcodes组中选择不同的主区';
$result=mysql\u query($query)或die(mysql\u error());
回声“;
回应“选择省”;
while($row=mysql\u fetch\u数组($result)){
$MARGY_area=$row['MARGY_area'];
echo“$主要区域”;
}
回声“;
这是我对“城市”下拉列表的查询,其中显示了一个输入为“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>";
$query=“从Zipcode中选择不同的城市,其中主要区域按城市asc排序”;
$result=mysql\u query($query)或die(mysql\u error());
回声“;
回应“选择城市”;
while($row=mysql\u fetch\u数组($result)){
$city=$row['city'];
回声“$city”;
}
回声“;
当然还有邮政编码。我还没有做过,但我知道如何去质疑它。我只需要让它自动,但我不知道怎么做


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

因为您可能不想预先加载所有的城市数据(因为它可能是相当多的数据),所以您可能需要一些jS来执行AJAX调用,以填充省的select上的城市下拉列表。假设您使用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());
});
这不是一个完整的示例,但应该让您开始学习。

您可以找到一个非常容易理解的教程,介绍如何进行此操作

首先,这不是严格意义上的PHP所能做到的。您需要刷新页面,以便填充其他下拉列表。从这里,我们得出结论,您必须使用Ajax。或者JQuery
.ajax()
。任何你觉得使用起来更舒服的东西

以下是步骤:

  • 当第一个下拉菜单被选中时,将有一个
    onClick
    事件,它将加载一个JS函数

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

  • 在PHP文件中,您将使用SELECTFROMDB和正确的信息,根据您发送给他的ID进行选择,您猜。对于
    WHERE
    子句很有用,对吗

  • 最后一个PHP函数将显示下拉列表,您可以看到:)


  • 希望这有帮助!阅读我提供的文档,它将帮助您并记住:如果您只是要求他人提供现成的代码,您将什么也学不到。你能为自己做的最好的事情就是阅读文档,这样下次遇到这个问题时,你就会知道如何自己解决它,而不是回到文档中去寻找答案或发布重复的答案;)

    关于相关下拉列表的教程怎么样?