jQuery下拉依赖

我有2个下拉列表。 第一个显示来自一个国家的区域,另一个显示选定州的每个城市。 问题是,在我提交表单之后,MySQL数据库从第一个列表中获取所选区域的ID,而第二个列表则不显示任何内容。 我想让我的数据库收到正确的信息。 该地区的名称和城市的名称。

我怎样才能做到这一点?

我的javascript看起来像这样:

$(document).ready(function() { $(".region").change(function() {`enter code here` var id = $(this).val(); var dataString = 'id=' + id; $.ajax({ type: "POST", url: "ajax_city.php", data: dataString, cache: false, success: function(html) { $(".city").html(html); } }); }); });​ 

我的section.php脚本是:

 <?php   --Select Region-- <?php $sql = mysql_query("SELECT id,region FROM regions ORDER BY region"); while ($row = mysql_fetch_array($sql)) { $id = $row['id']; $region = $row['region']; echo '' . $region . ''; } ?>  

--Select City-- ?>

ajax_city.php文件如下所示:

 <?php if($_POST['id']) { $id = $_POST['id']; $sql=mysql_query("SELECT DISTINCT city FROM CITY where id_city=$id order by city"); while($row = mysql_fetch_array($sql)) { $id=$row['id']; $data=$row['city']; echo "$data"; } } ?> 

代码工作正常。 但我无法弄清楚如何处理数据库。 我想我必须在JavaScript中改变一些东西?

有什么帮助吗?

  

section.php

  

ajax_city.php

 $data"; } } ?> 

数据库: country

 CREATE TABLE IF NOT EXISTS `city` ( `id_city` int(11) NOT NULL AUTO_INCREMENT, `city` varchar(30) NOT NULL, `pid` int(11) NOT NULL, PRIMARY KEY (`id_city`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ; INSERT INTO `city` (`id_city`, `city`, `pid`) VALUES(1, 'Gujarat', 1),(2, Maharashtra', 1),(3, 'Rajasthan', 1),(4, 'Madhya Pradesh', 1),(5, 'Lahore', 2),(6, 'hyderabad', 2); CREATE TABLE IF NOT EXISTS `regions` ( `id` int(11) NOT NULL AUTO_INCREMENT, `region` varchar(30) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; INSERT INTO `regions` (`id`, `region`) VALUES(1, 'India'),(2, 'Pakistan'); 

Javascript在default.php上

    

ajax_city.php

 $data"; } } ?>