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"; } } ?>