index.php<?php
define('IN_CITY',true);
include('../../include/common.php');
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>ajax联动下拉框菜单</title>
<script type="text/javascript" src="ajax.js"></script>
</head>
<body>
<select id="state" name="state" onChange="getcity()">
<?php
$sql = "SELECT * FROM city_area WHERE parentid = '0'";
$query = $db->query($sql);
while($rows = $db->loop_fetch_array($query)){
echo "<option value=$rows[areaid]>$rows[areaname]</option>";
}
?>
</select>
<select name="city" id="city">
<option value="">please select state first</option>
</select>
</body>
</html>
ajax.jsvar xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject(){
var xmlHttp;
try{
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
"MSXML2.XMLHTTP.5.0",
"MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0",
"MSXML2.XMLHTTP",
"Microsoft.XMLHTTP");
for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) {
try {
xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
}
catch (e) {}
}
}
if (!xmlHttp)
alert("Error creating the XMLHttpRequest object.");
else
return xmlHttp;
}function getcity(){
var selectObj = document.getElementById("state");
var url = "ajax_city.php?stateid=" +escape(selectObj.options[selectObj.selectedIndex].value);
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = getcityOk;
xmlHttp.send(null);
}function getcityOk(){
if (xmlHttp.readyState == 4) {
var response = xmlHttp.responseText;
try{
var classObj = document.getElementById("city");classObj.outerHTML=response;
}
catch(exception){}
}
}ajax_city.php<?php
header("Content-type:text/html;charset=gbk");
define('IN_CITY',true);
include('../../include/common.php');$stateid=$_GET['stateid'];if(isset($stateid))
{
$sql = "SELECT * FROM city_area WHERE parentid = '$stateid'";
$query = $db->query($sql);
echo "<select name=city>";
while($rows = $db->loop_fetch_array($query)){
echo "<option value=$rows[areaid]>$rows[areaname]</option>";
}
echo "</select>";
}?>最好是把关键代码写出来,我菜。。
define('IN_CITY',true);
include('../../include/common.php');
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>ajax联动下拉框菜单</title>
<script type="text/javascript" src="ajax.js"></script>
</head>
<body>
<select id="state" name="state" onChange="getcity()">
<?php
$sql = "SELECT * FROM city_area WHERE parentid = '0'";
$query = $db->query($sql);
while($rows = $db->loop_fetch_array($query)){
echo "<option value=$rows[areaid]>$rows[areaname]</option>";
}
?>
</select>
<select name="city" id="city">
<option value="">please select state first</option>
</select>
</body>
</html>
ajax.jsvar xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject(){
var xmlHttp;
try{
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
"MSXML2.XMLHTTP.5.0",
"MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0",
"MSXML2.XMLHTTP",
"Microsoft.XMLHTTP");
for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) {
try {
xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
}
catch (e) {}
}
}
if (!xmlHttp)
alert("Error creating the XMLHttpRequest object.");
else
return xmlHttp;
}function getcity(){
var selectObj = document.getElementById("state");
var url = "ajax_city.php?stateid=" +escape(selectObj.options[selectObj.selectedIndex].value);
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = getcityOk;
xmlHttp.send(null);
}function getcityOk(){
if (xmlHttp.readyState == 4) {
var response = xmlHttp.responseText;
try{
var classObj = document.getElementById("city");classObj.outerHTML=response;
}
catch(exception){}
}
}ajax_city.php<?php
header("Content-type:text/html;charset=gbk");
define('IN_CITY',true);
include('../../include/common.php');$stateid=$_GET['stateid'];if(isset($stateid))
{
$sql = "SELECT * FROM city_area WHERE parentid = '$stateid'";
$query = $db->query($sql);
echo "<select name=city>";
while($rows = $db->loop_fetch_array($query)){
echo "<option value=$rows[areaid]>$rows[areaname]</option>";
}
echo "</select>";
}?>最好是把关键代码写出来,我菜。。
这块是关键.
如果是N级,需要
<select name="city" id="city" onchange='getprovince()'>加上getprovince触发获取省市的数据.
依此类推.
在节点上执行ajax,如果有下一级,主添加子节点
function createXmlHttpRequestObject(){
var xmlHttp;
try{
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
"MSXML2.XMLHTTP.5.0",
"MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0",
"MSXML2.XMLHTTP",
"Microsoft.XMLHTTP");
for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) {
try {
xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
}
catch (e) {}
}
}
if (!xmlHttp)
alert("Error creating the XMLHttpRequest object.");
else
return xmlHttp;
}function getcity(){
var selectObj = document.getElementById("state");
var url = "ajax_city.php?stateid=" +escape(selectObj.options[selectObj.selectedIndex].value);
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = getcityOk;
xmlHttp.send(null);
}function getarea(){
var selectObj = document.getElementById("city");
var url = "ajax_city.php?areaid=" +escape(selectObj.options[selectObj.selectedIndex].value);
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = getareaOk;
xmlHttp.send(null);
}function getcityOk(){
if (xmlHttp.readyState == 4) {
var response = xmlHttp.responseText;
try{
var classObj = document.getElementById("city");classObj.outerHTML=response;
}
catch(exception){}
}
}function getareaOk(){
if (xmlHttp.readyState == 4) {
var response = xmlHttp.responseText;
try{
var classObj = document.getElementById("area");classObj.outerHTML=response;
}
catch(exception){}
}
}