2012-03-27 16 views
1

をparsing-、コントローラに私が要求エラーは、私はAJAXを使用して削除アクションを非同期にしたいZend Frameworkに

public function deleteAction() { 

    $request = $this->getRequest(); 
    if ($request) { 
     $visitId = $request->getParam('visit_id'); 
     $mapper = new Visits_Model_VisitsMapper(); 
     try { 
      $mapper->deleteVisit($visitId); 
      echo json_encode("1"); 
     } catch (Exception $e) { 
      $this->view->message = "error inserting Data, Error details: " . $e->getMessage(); 
      echo json_encode("0"); 
     } 

     Zend_Controller_Front::getInstance()->setParam('noViewRenderer', true); 
    } 
} 

とjqueryのスクリプトで

$("a.delete").live('click',function(e){ 
    e.preventDefault(); 
    var data={ 
       "visit_id":$(this).parent().parent().attr("id") 
    }; 

    jQuery.ajax({ 
     url: "/visits/visit/delete", 
     type: "POST", 
     dataType: 'json', 
     data: requestDate, 
     success: successCallback, 
     error:failureCallback 
    }); 

を扱うアクションを作ります削除ボタンをクリックすると、リクエストが送信され、ポップアップ時のエラーが発生します。

Error <!-- application/layouts/scripts/layout.phtml --> 
the whole html of layout page.... 
error SyntaxError: JSON.parse: unexpected character 

私はd eleteプロセスは起こらない!! 同期要求を送信すると、削除操作が正常に実行されました。レイアウトページを使わずにAJAX呼び出しを行うと、削除も正常に成功します。

エラーは何ですか?

+0

'データ型:「JSONP」、'行くことを変更し、それを別のものを与えて...通常は問題を修正します。 – Val

+0

いいえ、うまくいきません... – palAlaa

答えて

0

レイアウトがレンダリングされていると思われ、jQueryコードによって解析されている(失敗している)と思われます。それをオフにしてみてください。

try { 
    $mapper->deleteVisit($visitId); 
    if ($this->getRequest->isXmlHttpRequest()) { 
     $this->_helper->json("1"); //this will disable layout and view renderer 
            //and echo your data 
    } 
    else { 
     //... 
    } 
} 
+0

これは追跡するための単純なエラーです。エラーが記録されているファイルと行を注意深く読んでください – bububaba

関連する問題