本文實例分析了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']; //[email protected] //較原版增加部分-- // 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程序設計有所幫助。