一尘不染

如何使用jQuery在PHP中创建级联下拉列表

php

我的数据库包含国家和城市。

第一种情况-成功完成:

  1. 国家列表在页面加载的下拉框中填充
  2. 城市列表将在页面加载的下拉框中填充-填充的城市列表基于默认国家/地区。

第二种情况-无法成功:

  1. 用户更改国家
  2. 城市列表将根据所选国家/地区更改

我知道我必须使用jQuery /
Ajax。我尝试过,但是由于缺乏编程经验,我无法解决问题。我的列表是从数据库而不是XML获取的。我只需要一个快速的解决方案,我就需要保持简单和愚蠢。

我正在使用常规的PHP编码样式,而不是面向对象的。

我该怎么做?任何相关资源将不胜感激。


阅读 264

收藏
2020-05-29

共1个答案

一尘不染

$("#country").change(function(){
    $('#city').find('option').remove().end(); //clear the city ddl
    var country = $(this).find("option:selected").text();
    alert(country);
    //do the ajax call
    $.ajax({
        url:'getCity.php'
        type:'GET',
        data:{city:country},
        dataType:'json',
        cache:false,
        success:function(data){

        data=JSON.parse(data); //no need if dataType is set to json
         var ddl = document.getElementById('city');

         for(var c=0;c<obj.length;c++)
              {              
               var option = document.createElement('option');
               option.value = obj[c];
               option.text  = obj[c];                           
               ddl.appendChild(option);
              }


    },
        error:function(jxhr){
        alert(jxhr.responseText);

    }
    });

});

在您的getCity.php中

$country = $_GET['city'];

//do the db query here

$query  = "your query";
$result = mysql_query($query);
$temp = array();
while ($row = mysql_fetch_assoc($result)) {

 if(empty($temp))
 {
   $temp=array($row['city']);
 }
 else
 {  
   array_push($temp,$row['city']);
 }

}
echo (json_encode($temp));
2020-05-29