欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

DWZ+ThinkPHP开发时遇到的问题分析

程序员文章站 2024-04-01 20:04:58
本文实例分析了dwz+thinkphp开发时遇到的问题。分享给大家供大家参考,具体如下: 目前我用的 thinkphp 版本是  3.1.3 j-ui&nbs...

本文实例分析了dwz+thinkphp开发时遇到的问题。分享给大家供大家参考,具体如下:

目前我用的 thinkphp 版本是  3.1.3

j-ui  dwz 版本好像是 1.4

当我在项目开发的过程中 遇到了这么的一个问题,
当我我在后台执行ajax操作的时候,success,error不能成功的返回提示的信息,而是返回object object这样的一条错误提示。

研究了很久发现是版本的问题,新改版的thinkphp对dwz中的ajax技术中的一点不符合版本的问题

所以我就 更改  action.class.php 中 ajaxreturn函数 为

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):'';
    }
    //
    //较原版增加部分--
    $data['statuscode'] = 1; //
    $data['navtabid'] = $_request['navtabid'];//
    $data['rel'] = $_request['rel']; //
    $data['callbacktype'] = $_request['callbacktype']; //
    $data['forwardurl'] = $_request['forwardurl']; //
    $data['confirmmsg'] = $_request['confirmmsg'];//
    $data['message'] = $data['info']; //840206883@qq.com
    //较原版增加部分--
    //
    if(empty($type)) $type =  c('default_ajax_return');
    switch (strtoupper($type)){
      case 'json' :
        // 返回json数据格式到客户端 包含状态信息
        header('content-type:application/json; charset=utf-8');
        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);
    }
}

更多关于thinkphp相关内容感兴趣的读者可查看本站专题:《thinkphp入门教程》、《thinkphp模板操作技巧总结》、《thinkphp常用方法总结》、《codeigniter入门教程》、《ci(codeigniter)框架进阶教程》、《zend framework框架入门教程》、《smarty模板入门基础教程》及《php模板技术总结》。

希望本文所述对大家基于thinkphp框架的php程序设计有所帮助。