手机版

PHP Mysql Ajax JS实现省市三级联动

时间:2021-11-07 来源:互联网 编辑:宝哥软件园 浏览:

基本思想就是:在射流研究…动态创建挑选控件的选项,通过埃阿斯获取在服务器端编程语言(专业超文本预处理器的缩写)从结构化查询语言数据库获取的省市区信息,代码有点长,但很多都是类似的,例如射流研究…中省、市、区获取方法类似,PHP中通过参数不同执行不同的挑选语句。index.html代码:复制代码代码如下:DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN ' ' http://www .w3。org/TR/XHTML 1/DTD/XHTML 1-Transitional。DTD ' html xmlns=' http://www .w3。org/1999/XHTML '标题省市区三级联动/title MetA http-equiv=Content-Type Content=' text/html;charset=GB 2312 ' script src=' http : script/thumbnals。js ' type=' text/JavaScript '/script/head dydiv id=' description ' select style=' width :100 px;onchange=' sech(this。id)' id='笙'选项值='省份'请选择省份/option/select on change=' sech(这。id)' id=' Shi '选项值=' city '请选择市区/option/selectselect id='xian '选项值='郡'请选择县乡/option/select/div/div/body/html缩略图。射流研究…代码:复制代码代码如下:窗口。onload=GetProvince函数createRequest() {//Ajax于服务器端编程语言(专业超文本预处理器的缩写)交互需要对象try { request=new XMlhttprequest();//创建一个新的请求对象;} catch(tryMS){ try { request=new ActiveX对象(' Msxml 2 .XMLHTTP’);} catch(其他ms){ try { request=new ActiveX对象(' Microsoft .XMLHTTP’);} catch(失败){请求=null} } }返回请求;}函数sech(id) {//省市改变时触发,选择的onchange事件var aa=文档。getelementbyid(id);if(id==' sheng '){ getCity(aa。值);//这里aa。价值为省的id } if(id==' Shi '){ GetCountry(aa。值);//这里aa。价值为市的id } }函数getProvince() {//获取所有省请求=创建请求();if (request==null) { alert('无法创建请求');返回;} var url='getDetails.php?ID=0 ';//ID=0时传递至服务器端编程语言(专业超文本预处理器的缩写)时让其获取所有省request.open('GET ',url,true);请求。onreadystatechange=display省份;//设置回调函数请求。发送(null);//发送请求}函数getCity(id){//获取省对应的市请求=创建请求();if (request==null) { alert('无法创建请求');返回;} var url='getDetails.php?ID=' escape(ID);request.open('GET ',url,true);请求。onreadystatechange=显示城市;请求。发送(null);}函数GetCountry(id){//获取市对应的区请求=创建请求();if (request==null) { alert('无法创建请求');返回;} var url='getDetails.php?ID=' escape(ID);request.open('GET ',url,true);请求。onreadystatechange=显示国家;请求。发送(null);}函数显示venture(){//将获取的数据动态增加至选择if(请求。readystate==4){ if(请求。状态==200){ var a=新数组;var b=request.responseText//将服务器端编程语言(专业超文本预处理器的缩写)返回的数据赋值给ba=b.split(',');//通过','将这一数据保存在数组a中document.getElementById('sheng ').长度=1;var obj=文档。getelementbyid(' sheng ');for(I=0;i obj.options.add(新的选项(a[i],I(1));//动态生成选择权加到挑选中,第一个参数为文字,第二个参数为价值值。} } }函数displayCity() {//将获取的数据动态增加至选择if(请求。readystate==4){ if(请求。状态==200){ var a=新数组;var b=request . responsetexta=b . split(',');document.getElementById('shi ').长度=1;//重新选择document.getElementById('xian ').长度=1;//重新选择if(文档。getelementbyid(' sheng ').价值!='省份){ var obj=document。getelementbyid(' Shi ');for(I=0;i obj.options.add(新的选项(a[i],document.getElementById('sheng ').值* 100一1);//文档。getelementbyid(' sheng ').值*100 i 1对应的是市的身份证。

} } } }函数显示国家(){//将获取的数据增加至选择if(请求。readystate==4){ if(请求。状态==200){ var a=新数组;var b=request . responsetexta=b . split(',');document.getElementById('xian ').长度=1;if(文档。getelementbyid(' sheng ').价值!='省份document.getElementById('shi ').价值!=' city '){ var obj=document。getelementbyid(' xian ');for(I=0;i obj.options.add(新的选项(a[i],I 1001));} } }}getDetails.php代码:复制代码代码如下:phpheader(' Content-type : text/html;charset=GB 2312’);$conn=新组件(' ADODB .连接)或芯片('无法启动ADO’);$ connstr=' Provider=SQLOLEDB持续安全信息=假;用户标识=根;密码=123456;初始目录=区域;数据源=本地主机;if($_REQUEST['ID']==0){//获得省列表$ conn-Open($ connstr);//建立数据库连接$sqlstr="从省中选择名称";//设置查询字符串$ RS=$ conn-Execute($ sqlstr);//执行查询获得结果$ num _ cols=$ RS-field-Count();//得到数据集列数$省份=数组();$ I=0;while(!$ RS-EOF){ $省[$ I]=$ RS-字段['名称']-值',';$ RS-moveNeXt();$ I;} foreach($省份作为$ val)回显$ val;$ conn-Close();$ RS=null $ conn=null } if($ _ REQUEST[' ID ']0 $ _ REQUEST[' ID ']35){//获得省对应的市列表$ conn-Open($ connstr);//建立数据库连接$sqlstr='从cid='所在的城市选择名称。$ _ REQUEST[' ID '];//设置查询字符串$ RS=$ conn-Execute($ sqlstr);//执行查询获得结果$ num _ cols=$ RS-field-Count();//得到数据集列数$ City=array();$ I=0;while(!$ RS-EOF){ $ City[$ I]=$ RS-字段['名称']-值',';$ RS-moveNeXt();$ I;} foreach($ City as $ val)echo $ val;$ conn-Close();$ RS=null $ conn=null } if($ _ REQUEST[' ID ']100){//获得省市对应的县列表$ conn-Open($ connstr);//建立数据库连接$sqlstr='从cid='所在的县选择名称。$ _ REQUEST[' ID '];//设置查询字符串$ RS=$ conn-Execute($ sqlstr);//执行查询获得结果$ num _ cols=$ RS-field-Count();//得到数据集列数$ County=array();$ I=0;while(!$ RS-EOF){ $郡[$ I]=$ RS-字段['名称']-值。',';$ RS-moveNeXt();$ I;} foreach($ County as $ val)echo $ val;$ conn-Close();$ rs=null$ conn=null}?数据库设计,表格省表,城市表,县表。要求:省表需要编号和姓名、身份证建议从一至34,例如北京编号为1,广东编号为2,以此类推;城市表需要身份证,姓名和cid,id为cid*100 1,cid为该市的上级,例如深圳的上级为广东省国际开发委员会为2的话,深圳的编号就是201,以此类推县。表需要身份证,姓名和cid,因为是三级的关系,id可以随意,建议从10001开始自增cid。为所在上级,例如宝安区的国际开发委员会为201,龙岗区的国际开发委员会也为201;截图:HTML效果

完成后:

注意:PHP是服务器端的。建议发布网站后通过ip进行调试。

版权声明:PHP Mysql Ajax JS实现省市三级联动是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。