jquery+ajax实现省市区三级联动 (封装和不封装两种方式)

前端之家收集整理的这篇文章主要介绍了jquery+ajax实现省市区三级联动 (封装和不封装两种方式)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

首先,要实现如下图效果

1、要理清思路:

先做出三个下拉菜单----根据第一个下拉菜单的value值获取第二个下拉列表的内容,第三个同理。

2、用到的数据库表:Chinastates表

规律:根据国家级(中国)的areacode查询省级(如:北京) ; 根据省级的areacode查询市级(如:北京市辖);根据市级的areacode查询区级(如东城区)

第一种方式:

没有用到封装,数据读取较慢,可以看看原理,这样在第二种方式封装时就容易多了。

代码如下:

<Meta charset="UTF-8">   

期间出现的问题:每个下拉列表的第一个数据输不出来:是因为每个下拉列表的第一个数据的value值都带有空格!!!所以在输出data时要去空格!!!

data返回的值可能带有空格换行等,所以要用trim()方法去空格!!!

第二种方式:

封装成插件,以后可以随时调用(重要)

(1)主页面

<Meta charset="UTF-8">
//引入jquery包
//id要与封装的js插件中一致

(2)我们自己封装的js插件

页面建的div中 $("#sanji").html(""); //加载省的数据 LoadSheng(); //加载市的数据 LoadShi(); //加载区的数据 LoadQu(); //给省的下拉列表添加点击事件,当省变化时,对应的市和区会发生变化 $("#sheng").click(function(){ LoadShi(); LoadQu(); }) //给市的下拉列表添加点击事件,当市变化时,对应的区发生变化 $("#shi").click(function(){ LoadQu(); })

});

//加载省的下拉列表
function LoadSheng() {
var pcode = "0001";
$.ajax({
async: false,url: "chuli.PHP",data: { code: pcode },type: "POST",dataType: "TEXT",success: function(data) {
var hang = data.trim().split("|");
var str = "";
for(var i = 0; i < hang.length; i++) {
var lie = hang[i].split("^");
str = str + "";
}
$("#sheng").html(str);
}
});
}

//加载市省的下拉列表
function LoadShi() {
var pcode = $("#sheng").val();
$.ajax({
async: false,success: function(data) {
var hang = data.trim().split("|");
var str = "";
for(var i = 0; i < hang.length; i++) {
var lie = hang[i].split("^");
str = str + "";
}
$("#shi").html(str);
}
});
}

//加载省的下拉列表
function LoadQu() {
var pcode = $("#shi").val();
$.ajax({
url: "chuli.PHP",success: function(data) {
var hang = data.trim().split("|");
var str = "";
for(var i = 0; i < hang.length; i++) {
var lie = hang[i].split("^");
str = str + "";
}
$("#qu").html(str);
}
});
}  

其次就是处理页面(两种方法都用到的):chuli.PHP

PHP;"> strquery($sql); echo $str;

最后就是封装的类文件:DB.class.PHP

host,$this->uid,$this->pwd,$this->dbname); $result = $db ->query($sql); $arr =$result->fetch_all(); $str=""; foreach($arr as $v) { $str=$str.implode("^",$v)."|"; } $str = substr($str,strlen($str)-1); return $str; } } ?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

原文链接:https://www.f2er.com/ajax/39283.html

猜你在找的Ajax相关文章