Как сделать каскадный выпадающий список в PHP с помощью jQuery

У меня есть база данных из стран и городов.

Первый случай – Успешно сделано:

  1. Список стран заполняется в поле для загрузки при загрузке страницы
  2. Список городов заполняется в окне загрузки при загрузке страницы. Список заполненных городов основан на стране по умолчанию.

Второй случай – не удалось:

  1. Пользователь изменяет страну
  2. Список городов будет изменен в соответствии с выбранной страной

Я знаю, что мне нужно использовать jQuery / Ajax. Я попытался, но я не мог решить свою проблему из-за отсутствия опыта программирования. Мой список извлекается из базы данных, а не из XML. Мне просто нужно быстрое решение, мне нужно держать его простым и глупым.

Я использую обычный стиль программирования PHP, а не Object-Oriented.

Как мне это сделать? Любые связанные с этим ресурсы будут оценены.

$("#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)); 

Вы можете сделать это, сделав ajax-вызов при изменении значения поля select с помощью .change() . api.jquery.com/change/

записывайте данные вместо obj. Он отлично работает