改造thinkphp 的 page类,使其支持ajax方式
效果:
说明:thinkphp版本:3.2.1
步骤:
1、打开page.class.php(路径:thinkphp/library/think)
找到第48行:
empty($_get[$this->p]) ? 1 : intval($_get[$this->p]); 改为:
empty(i($this->p)) ? 1 : intval(i($this->p));
实际是改为用内置的 i 函数读取传递进来的p参数,这样并不会影响原有的功能。
2、ajax方式的调用:
即前台html页面
此处用来显示分页内容
javascript: function jzry(p) {
var request = $.ajax({
url: __module__/home/jzrh, //用ajax加载分页数据
type: post,
async: false,
data:{p:p},
beforesend: function(xhr) {
$('#message').html(正在加载数据,请稍候。);
}
});
request.done(function(msg) {
if (msg.bj == 'ok') {
$('#rs').html(msg.page); //显示分页
$(#rs a).removeattr(href); //删除原来的连接地址方式,
//改用ajax按键事件
$(.num,.end,.first).on(click, function(){
jzry( $(this).text() );
});
$(.next).on(click, function(){
jzry( parseint($(.current).text())+1);
});
$(.prev).on(click, function(){
jzry( parseint($(.current).text())-1);
});
}});
request.fail(function(jqxhr, textstatus) {
$('#message').html(错误: + textstatus);
});
} 样式:
3、后台使用和原来的一样
$user = m(user);
$user = $user->page($_post['p'].',20')->order('id')->select();
if ($user > 0) {
$val['bj'] = 'ok';
$count=$user->count();
$page=new \think\page($count,20);
$val['page']=$page->show();
$this->ajaxreturn($val); //ajax方式返回
}
ad:真正免费,域名+虚机+企业邮箱=0元