省市联动 ajax

此博客展示了如何通过省市联动实现城市选择,并利用AJAX技术从服务器动态获取对应城市的列表,采用PHP作为后端处理数据,实现用户交互与数据响应的无缝衔接。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
<title>省市联动</title>	
</head>
<script language="javascript" type="text/javascript">
	//创建ajax引擎
			function getXmlHttpObject()
				{
				  var xmlHttp=null;
				  //不同的浏览器获取对象xmlhttprequest 对象方法不一样
				  try
				    {
				    // Firefox, Opera 8.0+, Safari
				    xmlHttp=new XMLHttpRequest();
				    }
				  catch (e)
				    {
				    // Internet Explorer
				    try
				      {
				      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
				      }
				    catch (e)
				      {
				      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
				      }
				    }
				  return xmlHttp;
				}
				
				var myXmlHttpRequest="";
				
				function getCities(){
					
					myXmlHttpRequest=getXmlHttpObject();
					
					if(myXmlHttpRequest){
						
						var url="/ajax/cityprocess.php";//post方式
						var data1="province="+$('sheng').value;
						
						myXmlHttpRequest.open("post",url,true);//异步方式
						//必须加的一句话
						myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
						
						//指定回调函数
						myXmlHttpRequest.onreadystatechange=chuli;
						
						//发送
						myXmlHttpRequest.send(data1);
						
					}
					
				}
				
				function chuli(){
					
					if(myXmlHttpRequest.readyState==4){
						
						if(myXmlHttpRequest.status==200){
						
							//取出服务器返回的数据
							var cities=myXmlHttpRequest.responseXML.getElementsByTagName('city');
							
							$('city').length=1;//这个得写上
							
							//遍历并去除城市
							for(var i=0;i<cities.length;i++){
								
								var city_name=cities[i].childNodes[0].nodeValue;
								//window.alert(city_name);
								//创建新的option
								var myOption=document.createElement("option");
								myOption.value=city_name;
								myOption.innerText=city_name;
								//添加到下拉框
								$('city').appendChild(myOption);
							}
							
						}
						
					}
					
				}
				
				//封装一个方法
				function $(id){
					return document.getElementById(id);
				}
	
</script>
<body>
<select id="sheng" onchange="getCities();">
	<option value="">---省---</option>	
	<option value="zhejiang">浙江</option>
	<option value="jiangsu">江苏</option>
</select>	

<select id="city">
	<option value="">---城市---</option>	
</select>

<select id="country">
	<option value="">县城</option>	
</select>
</body>	
</html>


<?php 
//告诉浏览器使用utf8编码 保存时必须为无bom
header("Content-Type: text/xml;charset=utf-8");
//告诉浏览器不使用缓存
header("Cache-Control:no-cache");
//接收用户的选择的省份的名字
$province=$_POST['province'];
//在调试过程中,看到接收的数据的方法
//file_put_contents("d:/mylog.log",$province."\r\n",FILE_APPEND);
$info="";
if($province=="zhejiang"){
	
	$info="<province><city>杭州</city><city>温州</city><city>宁波</city></province>";
}else if($province=="jiangsu"){
	
	$info="<province><city>南京</city><city>苏州</city><city>无锡</city></province>";
}

echo $info;
?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蟹道人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值