DWZ+ThinkPHP开发时遇到的问题分析
本文实例分析了DWZ+ThinkPHP开发时遇到的问题。分享给大家供大家参考,具体如下:
目前我用的thinkphp版本是 3.1.3
J-UI dwz版本好像是1.4
当我在项目开发的过程中遇到了这么的一个问题,
当我我在后台执行ajax操作的时候,success,error不能成功的返回提示的信息,而是返回objectobject这样的一条错误提示。
研究了很久发现是版本的问题,新改版的ThinkPHP对DWZ中的Ajax技术中的一点不符合版本的问题
所以我就更改 Action.class.php中ajaxReturn函数为
protectedfunctionajaxReturn($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)框架进阶教程》、《ZendFrameWork框架入门教程》、《smarty模板入门基础教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。