Chinaunix首页 | 论坛 | 博客
  • 博客访问: 95635
  • 博文数量: 109
  • 博客积分: 3411
  • 博客等级: 中校
  • 技术积分: 1155
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-01 09:04
文章分类

全部博文(109)

文章存档

2011年(109)

分类: 系统运维

2011-05-19 16:04:57

    最近刚刚学习THINKPHP,在实践中需要异步更新表格数据,类ORG.Util.AjaxPage提供GET刷新方式。

也看到有朋友提出了AJAX实现的PAGE类,不过看代码貌似只是实现了第一次显示,分页显示的连接好像没有改变。
我基于PAGE类,修改实现了其AJAX版本,基本达到我预期目标。请各位专家不吝赐教。



改进思想
========
1.
读取POST参数
2.
改进URLJAVASCRIPT方式的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(); //
计算记录数  
        $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_funcpublic 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赋值的部分进行如下修改:
原代码:
if ($upRow>0){
            $upPage="".$this->config['prev']."";
        }else{
            $upPage="";
        }
修改后代码:
$href_str = "'javascript:".$this->ajaxFunc."('&".$p."=$upRow')'";
        if ($upRow>0){
            $upPage="
".$this->config['prev']."";
        }else{
            $upPage="";
        }

阅读(382) | 评论(0) | 转发(0) |
0

上一篇:TP整合FCK

下一篇:TP SEO

给主人留下些什么吧!~~