AjaxPage

最近刚刚学习THINKPHP,在实践中需要异步更新表格数据,类ORG.Util.AjaxPage提供GET刷新方式。
也看到有朋友提出了AJAX实现的PAGE类,不过看代码貌似只是实现了第一次显示,分页显示的连接好像没有改变。
我基于PAGE类,修改实现了其AJAX版本,基本达到我预期目标。请各位专家不吝赐教。



改进思想
========
1. 读取POST参数
2. 改进URL为JAVASCRIPT方式的AJA[attach]1469[/attach]X函数

使用方法
========
1. 控制类(Controller)
    public function phpAjaxMethod()
    {
        $Form = D('Your Model');
        header("Content-Type:text/html; charset=utf-8");
        
            import("ORG.Util.AjaxPage");
        $count = $Form->order('id')->count(); //计算记录数wedding jewelry sets  
        $limitRows = 3; // 设置每页记录数
        $p = new AjaxPage($count, $limitRows, "你页面的Ajax函数名");
        $limit_value = $p->firstRow . "," . $p->listRows;
        $data = $Form->order('id')->limit($limit_value)->select(); // 查询数据
            $page = $p->show(); // 产生分页信息,AJAX的连接在此处生成

        // 以下处理和正常查询一样
        
        
        // AJAX返回数据
        $this->ajaxReturn($ajax_data, $ajax_info, 1);
    }

2. 视图(View)
视图中必须定义JavaScript编写的AJAX处理函数,例如:
function myAjaxQuery()
{
    var page_arg = arguments[0] || "";
    var other_param = $('param_id').value;
    ThinkAjax.send('__URL__/phpAjaxMethod','ajax=1&other_param='+other_param+page_arg, AJAX返回处理函数, '信息标签ID');
}

代码
========
参见附件,说明如下:
1. 将ThinkPHP\Lib\ORG\Util\Page.class.php复制一份,更名为AjaxPage.class.php
2. 添加AJAX函数名,增加变量:protected $ajaxFunc;
3. 添加构造函数参数$ajax_func:public function __construct($totalRows,$listRows,$ajax_func,$parameter=''),并在构造函数中进行赋值:$this->ajaxFunc = $ajax_func;
4. 采用POST方式,原代码为:
$this->nowPage  = !empty($_GET[C('VAR_PAGE')])?$_GET[C('VAR_PAGE')]:1;
修改后为:
$this->nowPage  = !empty($_POST[C('VAR_PAGE')])?$_POST[C('VAR_PAGE')]:1;
5. 所有涉及到url赋值的部分进行如下修改:
原代码:replica handbags
if ($upRow>0){
            $upPage="<a href='".$url."&".$p."=$upRow'>".$this->config['prev']."</a>";
        }else{
            $upPage="";
        }
修改后代码:
$href_str = "'javascript:".$this->ajaxFunc."('&".$p."=$upRow')'";
        if ($upRow>0){
            $upPage="<a href=" . $href_str . ">".$this->config['prev']."</a>";
        }else{
            $upPage="";
        }

转载于:https://www.cnblogs.com/imadin/archive/2011/05/19/2051159.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值