<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--------------------------------------------------------------

--省的字段是:province
--市的字段是:city
--县的字段是:area
--------------------------------------------------------------------------->
<script type="text/javascript">

var xmlHttp;//声明变量
var requestType="";//声明初始类型为空
function createXMLHttpRequest()//定义创建一个跨浏览器函数的开头
{
  
 if(window.ActiveXObject)//ActiveXObject对象到找到的时候返回的是真,否则是假

{
    
   xmlHttp=new
ActiveXObject("Microsoft.XMLHTTP");//这个是使用IE的方法创建XmlHttp
    }
    else
if(window.XMLHttpRequest)
    {
    
   xmlHttp=new
XMLHttpRequest();//这个是使用非IE的方法创建XmlHttp
    }
}

function handleStateChange(){//判断返回的一个函数,来确定执行那个的函数
  
 if(xmlHttp.readyState==4)
    
   {//4说明是执行交互完毕0 (未初始化)1 (正在装载)2
(装载完毕) 3 (交互中)4 (完成)
    
   if(xmlHttp.status==200)
    
     
 {//http的一个报头说明成功找到
    
     
 if(requestType=="city"){//判断查询的类型
    
     
     
     
     
   showcity();//返回响应的显示
    
     
     
     
     }
    
     
 else if(requestType="area"){//判断响应的查询的类型
    
     
     
     
     
     
 showarea();//返回响应的显示
    
     
     
     
     
   }
    
     
 }
    
   }
}

function queryCity(citycode){//执行程序查询,查询城市的
  
 createXMLHttpRequest();//调用创建XmlHttp的函数
  
 requestType="city";//表示类型,查询城市处理显示的时候需要用到
    var
url='data.php?provincecode='+citycode+'&n='+Math.random();//设定URL传值方法同时防止缓存

xmlHttp.open("GET",url,true);//建立服务器连接,异步传输tree

xmlHttp.onreadystatechange=handleStateChange;//处理这个响应所需要的函数

xmlHttp.send(null);//执行程序函数这里的中间的参数是因为GET原因
}

function queryArea(citycode){//查询程序
  
 createXMLHttpRequest();//调用创建XmlHttp的函数
  
 requestType="area";//查询县的
    var
url="data.php?citycode="+citycode+'&n='+Math.random();//设定URL传值方法同时防止缓存

xmlHttp.open("GET",url,true);
  
 xmlHttp.onreadystatechange=handleStateChange;//处理响应的函数名

xmlHttp.send(null);//执行程序函数这里的中间的参数是因为GET原因
}

function showcity(){//显示函数
  
 document.getElementByIdx_x("city").innerHTML=xmlHttp.responseText;//捕获ID显示返回的数据

}
function showarea(){
  
 document.getElementByIdx_x("area").innerHTML=xmlHttp.responseText;//捕获ID显示返回的数据

}
</script>
</head>
<body>
<?php
  
 $conn=mysql_connect("localhost","root","root");//链接数据库
  
 mysql_select_db("novel");//选择数据库
  
 mysql_query("set
names 'utf8'");//设定字符集
  
 $sql="select *
from province";//查询数据库province表也就是省
  
 $result=mysql_query($sql);//执行语句赋值给变量
  
 ?>
  
 <form id='form1'><!--输出表单头-->

<!--输出下拉列表框,并设定onchange响应事件,把省值传递过去-->

<select id='province'onchange='queryCity(this.options[this.selectedIndex].value)'>
  
 <!--输出下拉列表项值-->

<option value='-1' selected>请选择省份</option>
  
 <?php
  
 while($row=mysql_fetch_row($result)){
  
 //循环循环查询显示省输出数据显示
    
   echo "<option
value='$row[1]'>$row[2]</option>\n";

}
  
 ?>
  
 </select><!--下拉列表项尾数-->

<span id='city'></span><!--显示数据的城市的位置-->

<span id='area'></span><!--显示数据的城市的位置-->

</form><!--表单项结尾-->
</body>
</html>

data.php 代码

<?php
$provincecode=$_GET['provincecode'];//接收省键值
$citycode=$_GET['citycode'];//接收城市键值
$conn=mysql_connect("localhost","root","root");//连接主机
mysql_select_db("novel");//选择数据库
mysql_query("set
names 'utf8'");
if($provincecode!=""){//如果传递过来的不为空则执行
  
 $sql="select *
from city where provincecode=$provincecode";//查询城市符合属于上边传递过来的省的字段
  
 $result=mysql_query($sql);//执行SQL查询语句
  
 print_r($row);
?>
  
 <select
onchange='queryArea(this.options[this.selectedIndex].value)'><!--下拉列表框开头-->

<option value='-1'
selected>请选择城市</option><!--下拉列表框值开头-->

<?php while($row=mysql_fetch_row($result)){//循环记录集?>
    
   <option
value="]?></option>

<?php }?>
  
 </select>
<?php }?>
<?php
  
 if($citycode!=""){
  
 $sql="select *
from area where citycode=$citycode";
  
 $result=mysql_query($sql);
  
 echo "<select>\n";

echo "<option value='-1'
selected>请选择县</option>\n";

while($row=mysql_fetch_row($result)){
    
   echo "<option value='$row[1]'>$row[2]</option>\n";

}
  
 echo "</select>\n";
}
?>

PHP+AJAX 地区三级联动代码的更多相关文章

  1. 省市区(县)三级联动代码(js 数据源)

    ylbtech-JavaScript-Utility:省市区(县)三级联动代码(js 数据源) 省市区(县)三级联动代码(js 数据源) 1.A,源代码(Source Code)返回顶部 1.A.1, ...

  2. ajax 实现三级联动

    ajax 实现三级联动,相当于写了一个小插件,用的时候直接拿过来用就可以了,这里我用了数据库中的chinastates表, 数据库内容很多,三级联动里的地区名称都在里面,采用的是代号副代号的方式 比如 ...

  3. ajax 实现三级联动下拉菜单

    ajax 实现三级联动,相当于写了一个小插件,用的时候直接拿过来用就可以了,这里我用了数据库中的chinastates表, 数据库内容很多,三级联动里的地区名称都在里面,采用的是代号副代号的方式 比如 ...

  4. PHP ajax 实现三级联动

    在一个单独JS页面中,利用ajax实现三级联动,做成一个三级联动形式,以便于以后随时调用 JS代码: $(document).ready(function(e) { $("#sanji&qu ...

  5. AJAX部分---对比js做日期的下拉选择 和 ajax做三级联动;

    js做日期选择: 实现当前年份的前5后5年的日期选择 实现功能:年份和月份页面加载完成使用JS循环添加,天数根据月份的变化动态添加改变 扩展功能:天数可以根据闰年平年变化 <body> & ...

  6. 在使用ajax实现三级联动调用数据库数据并通过调出的数据进行二级表单查询

    在使用ajax实现三级联动查询数据库数据后再使用ajax无刷新方式使用三级联动调出的数据进行二级查询 但是现在遇到问题,在二级查询的时候期望是将数据以表格的形式展示在三级联动的下方,但是现在在查询后会 ...

  7. 非常不错的地区三级联动,js简单易懂。封装起来了

    首先需要引入area.js,然后配置并初始化插件: 例: <!-- 绑定银行卡开始 --> <script src="js/area.js"></sc ...

  8. php+ajax的三级联动下拉菜单

    封装一个三级联动,就可以在任何页面进行引用了 先写个页面引用一下这个js <head> <meta http-equiv="Content-Type" conte ...

  9. ajax省市区三级联动

    jdbc+servlet+ajax开发省市区三级联动 技术点:jdbc操作数据库,ajax提交,字符拦截器,三级联动 特点:局部刷新达到省市区三级联动,举一反三可以做商品分类等 宗旨:从实战中学习 博 ...

随机推荐

  1. jsonp的简单实现

    jsonp: function(url, data, callback){ if( wfQuery.isFunction(data) ){ callback = data; data = {}; } ...

  2. hdu_2544_最短路(spfa版子)

    题目连接:hdu_2544_最短路 存个自己写的SPFA的板子 #include<cstdio> #include<cstring> #define mst(a,b) mems ...

  3. c++ 显示调用dll

    首先需要引入:#include<windows.h>     否则会出现 HINSTANCE 未定义的错误

  4. zf-关于公司框架的时间字段的格式转换问题。。

    <ww:date value="" format="yyyy-MM-dd">

  5. oracle有三个默认的用户名和密码,但是都无法登录的解决方法

    system/change_on_install, system/manager是较旧版的预设密码, 在安装较新版时会提示你设定密码, 若没有或忘了设定, 请参考以下重设: sqlplus / as ...

  6. android脚步---UI界面修改,增加按钮和监听

    我的UU界面,其布局如下: 需要修改的部分: 意见反馈居中,还有增加backbutton 首先在mainactivity中找到我的UU的定义:dialogue public void showAbou ...

  7. iOS项目在非测试设备上的安装方法(项目上线前)

    转载自:http://blog.csdn.net/ai379558502/article/details/49003383 方法一: 这个办法,其实是国外一个创业项目 TestFlight,面向移动应 ...

  8. 基于Redis的在线用户列表解决方案

    前言: 由于项目需求,需要在集群环境下实现在线用户列表的功能,并依靠在线列表实现用户单一登陆(同一账户只能一处登陆)功能: 在单机环境下,在线列表的实现方案可以采用SessionListener来完成 ...

  9. CodeForces 614B Gena's Code

    #include <stdio.h> #include <string.h> #include <iostream> #include <algorithm& ...

  10. 将Web项目访问的URL项目名设置为"/"

    工具:Eclipse 步骤: 1.鼠标右键项目名--->properties--->Web Project Setting--->Context root. 将Context roo ...