2012-03-27 14 views
1

I Löschaktion asynchron mit AJAX machen wollen, in der Steuerung mache ich eine Aktion, die die AnforderungFehler in json parsing- 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); 
    } 
} 

und im jquery Skript

$("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 
    }); 

Griff Wenn ich auf die Schaltfläche Löschen klicke, wird die Anfrage gesendet und ein Popup-Fehler tritt auf.

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

Ich erkenne, dass die d elete Prozess ist nicht passiert !! Wenn ich synchrone Anfrage sende, ist der Löschvorgang erfolgreich verlaufen. Und auch wenn ich den AJAX-Aufruf ohne Verwendung der Layout-Seite mache, ist das Löschen erfolgreich auch erfolgreich.

Was kann der Fehler sein?

+0

'dataType: 'jsonp',' ändern Sie das und geben Sie es noch einmal ... in der Regel behebt das Problem. – Val

+0

Nein, es funktioniert nicht ... – palAlaa

Antwort

0

Ich vermute, dass Ihr Layout gerendert wird und dann (erfolglos) durch den jQuery-Code analysiert wird. Versuchen Sie es auszuschalten:

+0

Dies ist ein einfacher Fehler zu verfolgen, lesen Sie genau, welche Datei und Zeile der Fehler ist – bububaba