改造thinkphp 的 Page类,使其支持ajax方式
程序员文章站
2024-01-26 10:59:04
...
改造thinkphp 的 Page类,使其支持ajax方式
效果:
说明:thinkphp版本:3.2.1
步骤:
1、打开Page.class.php(路径:ThinkPHP/Library/Think)
找到第48行:
实际是改为用内置的 I 函数读取传递进来的P参数,这样并不会影响原有的功能。
2、ajax方式的调用:
即前台html页面
3、后台使用和原来的一样
效果:
说明: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元
上一篇: 新人提问:居然输出一片空白