Ajax实现省市县三级联动

include/dbconn.php

<?php
//建立数据库的连接
mysql_connect("localhost","root","qwe");
//选择数据库
mysql_select_db("product");
//设置连接数据库的编码方式
mysql_query("set names utf8");

 

?>

ajaxUtil.js

function get(url1,params,methodName){
  //初始化ajax引擎
  var xhr = new XMLHttpRequest();//这种方式只针对ie浏览器,并且ie6以下还有问题。
  var url=url1+"?"+params+"&r="+Math.random();

  //alert(url);
  //打开引擎
  xhr.open("get",url,true);   //readyState=1
 
  //发送请求
  xhr.send(null);   //readyState=2
 
  //监听readyState值的改变,每次改变都会执行下面额函数 
  xhr.onreadystatechange=function (){
  
   //如果等于4,表明交互完毕 ,我们可以取出服务器返回的内容
   if(xhr.readyState==4){
           
 //动态调用方法,为什么说是动态呢?方法的名称是个变量methodName
   methodName(xhr);
   
   }
  
  }

}

//$$()方法用于方便取出 id="id" 的对象
function $$(id){
 
 return document.getElementById(id);
}

 

ajax-area-select-server.php

 

<?php
header("Content-Type:text/html;charset=utf-8");
//包含数据库连接文件
include_once "include/dbconn.php";
//获取客户端传来的数据
$id=$_GET['id'];
//定义sql
$sql="select id,name from area where id like '".$id."__' ";
//查询
$rs=mysql_query($sql);
$opstr="<option value='0'> 请选择 </option>";

//遍历查询结果,并且拼装html代码
while($rows=mysql_fetch_assoc($rs)){
 
 $opstr.="<option value='".$rows['id']."'>".$rows['name']."</option>";
 }
echo $opstr;

?>

 

 

ajax-area-select.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 
 <title>省市县三级联动</title>
<style type="text/css">
 
 </style>
 </head>
 <script language="javascript" type="text/javascript" src="ajaxUtil.js">
 </script>
 <script  type="text/javascript" language="javascript">
 
 var objectId="";
 function getArea(id,objid){
  objectId=objid;
  //定义url
  var url="ajax-area-select-server.php";
 
  //定义参数
   var params="id="+id;
  //调用ajax进行交互
  get(url,params,processData);
 
 
 
  }
// 处理服务器端返回的数据并显示
function processData(xhr){
 //获取省的下来菜单的对象
 $$(objectId).innerHTML=xhr.responseText;
  //得到交互的数据并显示处理
 
 }
 
 
 </script>
</head>

<body οnlοad="getArea('','sheng')">


    <div style="border:#0F0 dashed 1px;">
    <select id="sheng" οnchange="getArea(this.value,'shi')"></select>省
     <select id="shi" οnchange="getArea(this.value,'xian')"></select>市
     <select id="xian"></select>县
    </div>


</body>
</html>
 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值