2017-04-20 2 views
0

Ich habe eine dynamisch generierte Tabelle, die auch auf diese Schaltfläche haben:Löschen eines Eintrags mit JSON in Laravel

<button class="btn btn-danger btn-xs btn-delete delete-task" 
value="{{$contact->id}}">delete</button> 

Am Ende des Codes habe ich dies:

<meta name="_token" content="{!! csrf_token() !!}" /> 

Die Taste löst diese :

$(document).ready(function(){ 

$('.delete-task').click(function(){ 
    var contact_id = $(this).val(); 

    $.ajax({ 
     type: "DELETE", 
     url: adressbook_edit + '/' + contact_id, 
     success: function (data) { 
      console.log(data); 
      $("#contact" + contact_id).remove(); 
     }, 
     error: function (data) { 
      console.log('Error:', data); 
     } 
    }); 
}); 
} 

Welche meiner Wege führen, wie dies soll:

Route::delete('/adressbook_edit/{$contact_id?}',function($contact_id){ 
    $contact = addressbook::destroy($contact_id); 
    return Response::json($contact); 
}); 

Ich erwarte, den Eintrag in der Datenbank zu löschen, jedoch erhalte ich einen 404-Fehler. Die Richtung ist offensichtlich richtig. Hier ist der Fehler, den ich bekomme:

DELETE http://myip/adressbook_edit/2 404 (Not Found) send @ app.js:26 ajax @ app.js:25 (anonymous) @ adressbook.js:79 dispatch @ app.js:25 g.handle @ app.js:25 adressbook.js:87

Error: Object {readyState: 4, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…}

Adressebook.js ist, wo die oben genannte Ajax-Funktion aufgerufen wird.

url: '/adressbook_edit/' + contact_id 

Und auch diese Route ändern:

+2

Ist das richtig 'löschen ('/ adressbook_edit/{$ contact_id?} '? ich denke,' '$ und'? 'nicht benötigt werden. Versuchen Sie es mit' löschen ('/ adressbook_edit/{contact_id}' ' –

+0

@AntonisTsimourtos ohne Unterschied versucht – prgrm

+0

Neben Was @AntonisTsimourtos Ihre url Attribut in der ajax vorgeschlagen Anfrage muss etwas wie sein: 'url: 'addressbook_edit /' + contact_ id' oder 'url: '{{url (" addressbook_edit ")}}' + '/' + contact_id' –

Antwort

1

Versuchen Sie, Ihre Ajax-URL zu, dies zu ändern

Route::delete('/adressbook_edit/{contact_id}',function($contact_id){ 
    $contact = addressbook::destroy($contact_id); 
    return Response::json($contact); 
}); 
Verwandte Themen