您现在的位置是:网站首页> 编程资料编程资料
tp5框架基于Ajax实现列表无刷新排序功能示例_php实例_
2023-05-25
362人已围观
简介 tp5框架基于Ajax实现列表无刷新排序功能示例_php实例_
本文实例讲述了tp5框架基于Ajax实现列表无刷新排序功能。分享给大家供大家参考,具体如下:
在后台管理的时候我们有时需要对数据进行排序,以控制数据在模板显示的顺序,排序的原理就是修改数据库,然后更新视图。我们可以单独写一个方法来实现排序的功能,成功后刷新页面,也可以利用Ajax技术,实现数据的局部请求,也就是无刷新排序的功能。
现在想要达到的效果是在排序的input框中输入数值,点击排序实现无刷新排序的功能。
首先是表格(cate.html)这一块我们要单独摘出来,放入到一个单独页面当中,方便我们数据的请求。
其中cateajaxpage.html的内容为:
{volist name="news" id="vo"} ID 分类名称 排序 操作 {volist name="$vo.children" id="vo1"} {$vo.id} {$vo.name} {/volist} {/volist} {$vo1.id} |————{$vo1.name}
这里因为使用了无限级分类得到多维数组的技术,所以会有两个volist,如果你不太懂无限级分类的话可以分配过来一个普通的数据过来,重点是:
这句在显示排序值得同时,为每一个input框设置了一个name值,这个值就是分类的id值,通过这种方式,可以为列表当中的所有input框进行区分,且能通过数据库获取到对应的分类。
回到cate.html,写Ajax:
$("#changeOrder").click(function(event) { /* Act on the event */ var json = {}; $("input").not('#top-search').each(function(index, el) { json[$(this).attr('name')] = $(this).val(); }); $.ajax({ url: '{:url("admin/news/cate")}', type: 'post', data: json }) .done(function(data) { $(".table-bordered").html(data); $(document).click(); }) }); 其中changeOrder是我们为排序按钮添加的id值,我们把每一组id、order都放进json变量当中,传递给控制器。
控制器代码:
public function cate() { $news_model = model("Newsfenlei"); if (request()->isAjax()) { $post = input('post.'); foreach ($post as $key => $value) { db("newsfenlei")->where('id',$key)->update(['order'=>$value]); } $list = db("newsfenlei")->order('order desc')->select(); $news = $news_model->getNews($list); $this->assign("news",$news); return view('cateajaxpage'); } else { $list = db("newsfenlei")->order('order desc')->select(); $news = $news_model->getNews($list); $this->assign("news",$news); return view(); } } 因为涉及到无限级分类,所以使用了模型层获取数据,getNews方法是获取到无限级分类后的数据,这块大家可以直接使用数据库获取数据,需要注意的是处理Ajax请求的时候,我们根据POST信息进行数据更新,再数据更新以后再查询数据库,将数据分配到模板上。
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
相关内容
- tp5框架使用cookie加密算法实现登录功能示例_php实例_
- ThinkPHP5.1+Ajax实现的无刷新分页功能示例_php实例_
- ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例_php实例_
- Thinkphp框架+Layui实现图片/文件上传功能分析_php实例_
- PHP查找一列有序数组是否包含某值的方法_php技巧_
- php测试kafka项目示例_php技巧_
- PHP图像处理 imagestring添加图片水印与文字水印操作示例_php技巧_
- PHP实现常用排序算法的方法_php实例_
- PHP ElasticSearch做搜索实例讲解_php技巧_
- php 实现账号不能同时登陆的方法分析【当其它地方登陆时,当前账号失效】_php技巧_
