关于thinkphp查询以及分页的问题

原创
2016-06-23 13:31:49 745浏览

控制器里面的search方法:

	public function search(){		import("@.ORG.Page");		$list = D('Blog');		$keyword = trim($this->_post('keyword','htmlspecialchars'));		$sql = "SELECT b.*, a.`content`, u.`username`			FROM blog b			LEFT JOIN blog_attribute a ON a.`blog_id`=b.`id`			LEFT JOIN user u ON u.`id`=b.`user_id`			";		if(!empty($keyword)){			$sql .= " WHERE b.`title` LIKE '%{$keyword}%' OR a.`content` LIKE '%{$keyword}%'";		}		$count = count($list->query($sql));		$Page = new Page($count,2);		$firstRow = $Page->firstRow;		$listRows = $Page->listRows;		$this->data = $list->searchBlog($sql,$firstRow,$listRows);		$xxx['data'] = $this->data;		$page = $Page->show();		$xxx['page'] = $page;		//$this->data['page'] = $page;		//$this->assign("page",$page);		//var_dump(urldecode(json_encode($this->data)));		$this->show(urldecode(json_encode($xxx)));	}

列表页的代码:
博客列表页

个人的想法是点了列表页之后出来的就是一个搜索框,填写搜索信息之后在当前页面显示搜索到的信息,然后加上分页。分页的各个页面都是在当前页面下显示。
这样的话,列表第一页是现实正常的 ,但是点击了后面的分页之后就出现了
我是新手,这方面不是很懂,希望大家帮忙看看怎么修改才能是分页能够正常。分页类就是使用的thinkphp原来的,稍微有点样式的小改动。


回复讨论(解决方案)

没人看的吗

是用ajax获取服务器端的数据。你点后面的分页看看返回的json数据。或者可以在后台直接调试,给几个参数,在服务器端看看数据是不是正常。

是用ajax获取服务器端的数据。你点后面的分页看看返回的json数据。或者可以在后台直接调试,给几个参数,在服务器端看看数据是不是正常。


我的最后一张图就是点击第二页出来的结果,返回的数据就是第二页的数据

你要修改page类才可以点下一页的,否则就输出了春json格式

第二页返回的数据不正常吗,最好是在后端调试一下。

会不会跟你的那个分隔符有关系?试试把{}换成

http://dadaboke.com直接使用thinkphp框架中分也类就好了,都用好多次,蛮好用的,自己也可以改样式。

这个好像没办法,因为你是ajax提交返回的,除了改page类,还有一个补救办法,

$(function(){     $('.page a').click(function(){         $.get($(this).attr('href'),function(data){             $('#index_content').html(data);         })         return false;     }) }) 

得到data后你再按你的格式处理下,你可以试一下,是可以的

这个应该很好实现吧?做两个模板就可以解决了,不用那么复杂!
你看看这篇文章 http://www.23kaiyuan.com/516.html

请问楼主怎么解决的?

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。