javascript - 关于thinkphp的ajax搜索加分页功能,点击第二页后无返回值
黄舟
黄舟 2017-04-11 12:04:19
[JavaScript讨论组]

我用tp和ajax做了一个搜索加分页的功能。先写的分页代码,没有问题。然后再加上了搜索条件,返回第一页是没有问题的,但点击下方分页条的第二页后,页面就空白没有返回值了。请大家帮我看看:

{$vv.user_id}

{$vv.user_name}


{$page}

/*这是用于搜索栏的点击效果设计*/ $(function(){ $('#sousuojian').click(function(){ var $searchword=$("#sousuolan").val(); if ($searchword=="") { alert("搜索内容不得为空!"); $("#sousuolan").focus(); return false; } $.ajax({ type:'post', url:'{:U('Dongzuo/search_page')}', data:{searchword:$searchword}, success:function(res){$(".list").html(res);} }) return false;}); }); /*这是用于分页条的点击效果设计*/ $(function(){ $(".fenyetiao a").live('click',function(){ var pageObj = this; var url = pageObj.href $.ajax({ type:'get', url:url, success:function(res){$(".list").html(res);} }) return false; }) }); /*这是控制器的模块*/ class DongzuoController extends BaseController { public function search_page() {$searchword = I('searchword'); $userinfo = D('UsersInfo'); $count = $userinfo->where("user_name like '%{$searchword}%'")->count(); $Page = new \Think\Page($count,5); $show = $Page->show(); $list = $userinfo->where("user_name like '%{$searchword}%'")->limit($Page->firstRow.','.$Page->listRows)->select(); if(IS_AJAX) { $this->assign('page',$show); $this->assign('list',$list); $html = $this->fetch('fenye/test1Page'); $this->ajaxReturn($html); } $this->display(); } } /*这是fetch的test1Page*/

{$vv.user_id}

{$vv.user_name}


{$page}

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(4)
PHPz

打开chrome,按下F12,点击Network和Console,开始查看错误信息并调试。

你点击分页后列表边空白,绑定事件有效,使用ajax请求时,php代码返回值使用的thinkphp的ajaxReturn,这个方法返回的是数据库查询加过转换成的json数据,无法直接显示到html里。
用php拼接好<li>内容</li>,echo拼接好的字符串

PHPz

打印一下你点击下一页或者某一页传递的页码是否被接收到了,问题应该出在这
使用TP框架,如果你使用的是原有的分页类进行分页是不能够实现ajax无刷新分页的,对分页类稍加改造或者你重写一个也行,我使用的方法就是在原来的分页类中添加一个参数(js中的方法名),然后在控制器中查询出数据调用分页类的时候多传入这个参数(js中的方法名),然后在js中设置全局页码就可以了

黄舟

问题不够详细,代码也好乱

我就说一下我碰到这种情况时的解决思路:

1.js有报错吗?有:跳至2.没有:跳至3
2.检查报错内容,解决后跳至:3
3.页面空白(我猜是渲染那里空白),检查下点击第二次的请求是否成功.成功:跳至4.不成功:跳至5
4.看一眼返回值,如果格式正确则检查负责给页面渲染的那一部分js
5.解决不成功问题后跳转至4

PHPz

首先,TP里生成的分页是一堆 a 标签,点击分页是跳转页面。

其次,你在代码中加入了 IS_AJAX 判断,如果是 ajax 的话就 assign 数据 $list

跳转分页的请求不是 ajax ,所以不走你判断的那里,第二页自然就是空白了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号