php局部刷新增删改查,dwz增删改查不局部刷新的解决办法

一个小项目,用到了dwz,苦于官方少于维护且需要一部分前端技术一直没有深挖,迫在眉睫,遇到了跟很多人一样的问题,就是增删改查不能局部刷新,苦恼啊。经多多放查找资料和翻阅源码终于皇天不负有心。

项目使用TP3.1.3

需要做一下修改

找到 Thinkphp/lib/core/Action.class.php

查找 ajaxReturn 方法

注释掉

if(func_num_args()>2) {// 兼容3.0之前用法

$args           =   func_get_args();

array_shift($args);

$info           =   array();

$info['data']   =   $data;

$info['info']   =   array_shift($args);

$info['status'] =   array_shift($args);

$data           =   $info;

$type           =   $args?array_shift($args):'';

}

然后在下方添加

if(method_exists($this,"ajaxAssign")) $this->ajaxAssign($data);//ajax赋值扩展

完整代码如下

/**

* Ajax方式返回数据到客户端

* @access protected

* @param mixed $data 要返回的数据

* @param String $type AJAX返回数据格式

* @return void

*/

protected function ajaxReturn($data,$type='') {

//        if(func_num_args()>2) {// 兼容3.0之前用法

//            $args           =   func_get_args();

//            array_shift($args);

//            $info           =   array();

//            $info['data']   =   $data;

//            $info['info']   =   array_shift($args);

//            $info['status'] =   array_shift($args);

//            $data           =   $info;

//            $type           =   $args?array_shift($args):'';

//        }

if(method_exists($this,"ajaxAssign")) $this->ajaxAssign($data);//ajax赋值扩展

if(empty($type)) $type  =   C('DEFAULT_AJAX_RETURN');

switch (strtoupper($type)){

case 'JSON' :

// 返回JSON数据格式到客户端 包含状态信息

//header('Content-Type:application/json; charset=utf-8');

header('Content-Type:text/html; charset=utf-8'); //zhanghuihua

exit(json_encode($data));

case 'XML'  :

// 返回xml格式数据

header('Content-Type:text/xml; charset=utf-8');

exit(xml_encode($data));

case 'JSONP':

// 返回JSON数据格式到客户端 包含状态信息

header('Content-Type:application/json; charset=utf-8');

$handler  =   isset($_GET[C('VAR_JSONP_HANDLER')]) ? $_GET[C('VAR_JSONP_HANDLER')] : C('DEFAULT_JSONP_HANDLER');

exit($handler.'('.json_encode($data).');');

case 'EVAL' :

// 返回可执行的js脚本

header('Content-Type:text/html; charset=utf-8');

exit($data);

default     :

// 用于扩展其他返回格式数据

tag('ajax_return',$data);

}

}

在任意一出添加

protected function ajaxAssign(&$result){

$result['statusCode']  =  $result['status'];

$result['navTabId']  =  $_REQUEST['navTabId'];

$result['message']=$result['info'];

}

退出DWZ,重新登录 再试试吧!

]]>

原创文章,作者:键盘游走者,如若转载,请注明出处:http://www.708034.com/2016/03/dwz%e5%a2%9e%e5%88%a0%e6%94%b9%e6%9f%a5%e4%b8%8d%e5%b1%80%e9%83%a8%e5%88%b7%e6%96%b0%e7%9a%84%e8%a7%a3%e5%86%b3%e5%8a%9e%e6%b3%95/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值