ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单

ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单,第1张

概述联动菜单的数据存在数据库,可以随时通过对数据库添加删除修改改变菜单数据,而不需修改代码,同时,实现了2级后,也可以实现3级,4级。。。等关联菜单

首先是数据库的设计。分类表叫cate.

我做的是分类数据的二级联动,数据需要的字段有:ID,name(中文名),pID(父ID).

父ID的设置: 若数据没有上一级,则父ID为0,若有上级,则父ID为上一级的ID。

数据库有内容后,就可以开始写代码,进行二级联动的实现。

先在后台PHP获取所有pID为0的数据,保存到$cate中,然后在第一层的



标签:

AJAX代码:

代码如下: $('#type').click(function(){
$(this).change(function(){
var objectModel = {};
var value = $(this).val();
var type = $(this).attr('ID');
objectModel[type] =value;
$.AJAX({
cache:false,
type:"POST",
url:site.web+"lable",
dataType:"Json",
data:objectModel,
timeout:30000,
error:function(){
alert(site.web+"lable");
},
success:function(data){
$("#lables").empty();
var count = data.length;
var i = 0;
var b="";
for(i=0;i b+="";
}
$("#lables").append(b);
}
});
});
}
);

AJAX代码在第一层类型改变后触发,AJAX方法的主要参数有

1.url:后台接收AJAX的地址;

2.data:传到后台的数据,一般用Json传递;这里传递的是选中类的ID值。

3.type:传递方法,有get和post方法,我一般用post,可以传输的数据比get多,安全性也高些;

4.error:AJAX执行失败的方法;

5.success:AJAX执行成功的方法,也就是回调函数。这里在执行success时,我先用empty()清空了第二个下拉菜单的内容,然后再输出从后台获取的数据。

下面是ThinkPHP接收AJAX数据并处理的页面

代码如下://后台AJAX验证
$result = array();
$cate =$_POST['type'];
$result = M('cate')->where(array('ca_pID'=> $cate))->fIEld('ca_ID,ca_name')->select();
$this->AJAXReturn($result,"JsON");

ThinkPHP的I()方法其实可以看成$_POST[],这样来获取AJAX传递过来的第一层选中内容的ID,接着,获取其子类,然后用AJAXReturn()返回给AJAX,这里设置了返回数据以Json形式,所以AJAX会以Json形式接收到数据

原生PHP的返回数据方式:

代码如下: //搜索结果为$result
.....
echo Json_encode($result);

这样就完成了2级联动下拉菜单的实现,需要注意的是,url得保证正确,后台接收到也需要有返回值,不然AJAX也不会执行success方法的。

总结

以上是内存溢出为你收集整理的ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联下拉菜单全部内容,希望文章能够帮你解决ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1228697.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存