Ajax实现省市县三级联动
2012-03-01 20:13
656 查看
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 onload="getArea('','sheng')">
<div style="border:#0F0 dashed 1px;">
<select id="sheng" onchange="getArea(this.value,'shi')"></select>省
<select id="shi" onchange="getArea(this.value,'xian')"></select>市
<select id="xian"></select>县
</div>
</body>
</html>
<?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 onload="getArea('','sheng')">
<div style="border:#0F0 dashed 1px;">
<select id="sheng" onchange="getArea(this.value,'shi')"></select>省
<select id="shi" onchange="getArea(this.value,'xian')"></select>市
<select id="xian"></select>县
</div>
</body>
</html>
相关文章推荐
- PHP+ajax实现省市县三级联动
- ThinkPHP利用Ajax实现省市县地区三级联动
- 移动端纯原生JS不依赖ajax后台服务器实现省市县三级联动
- ajax 实现无刷新实现省市县(区)三级联动
- 整理:dotNet Ajax实现无刷新省市县三级联动菜单
- 用DropDownList实现Ajax无刷新省市三级联动中出现的错误
- AJAX和WebService实现省市县三级联动
- Ajax实现省市县三级联动
- 在JavaScript文件中用ajax方法实现省市区的三级联动
- Ajax 实现省市县 三级联动【无刷新】三层 | 三级联动—有刷新
- 由ajax,js,xml,php实现的三级联动省市县下拉功能
- 使用三层实现省市县三级联动(利用ajax实现无刷新效果)
- Ajax实现省市三级联动V1.0
- 移动端纯原生JS不依赖AJAX后台服务器实现省市县三级联动
- Ajax实现省市县三级联动
- Ajax实现省市三级联动V1.1
- Ajax 实现省市县 三级联动【无刷新】三层 | 三级联动—有刷新
- PHP+Ajax三种方法实现省市县三级联动
- ajax实现无刷新省市县三级联动