2016-08-30 5 views
2

を使用してデータを削除します..私はrun..Butに、以下の手順を行ってきた:PHP Laravel:私はそれがエラーを以下に示します削除しようとしたとき、私は、AJAXを使用してデータベースから一部のデータを削除したいアヤックス

Failed to load resource: the server responded with a status of 404 (Not Found)

をここ

は私のルートである:ここでは

Route::post('/delete/{id}',[ 
    'uses'=>'[email protected]', 
    'as' => 'delete' 
    ]); 

はコントローラです:

public function delete($id) 
     { 
      Item::find($id)->delete(); 
      return Redirect::back();    
     } 

そしてここでは、私の見解のPAGでありますe:

<html> 
    <head> 
     <title> Item List</title> 
     <meta name="csrf-token" content="{{ csrf_token() }}"> 
     <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.css"> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
    </head> 

    <body> 
      <div class="container"> 
       <h3> List Of Courses </h3></br> 

       <table class="table table-striped table-bordered dataTable" id="example"> 
       <thead> 
       <tr> 
        <td>Serial No</td> 
        <td>Title</td> 
        <td>Description</td>      
        <td>Action</td> 
       </tr> 
       </thead> 
       <tbody> 
       <?php $i=1; ?> 
       @foreach($items as $row) 

        <tr> 
         <td>{{$i}}</td> 
         <td>{{$row->title }}</td> 
         <td>{{$row->description}}</td>      
         <td>  
          <button type="button" onclick="deleteItem({{ $row->id }})" id="Reco" class="btn btn-danger">Delete</button>   
         </td> 
        </tr> 

       <?php $i++; ?> 

       @endforeach 
       </tbody> 
      </table> 
      </div> 

      <script> 
      function deleteItem(id) { 
       $.ajaxSetup({ 
         headers: { 
         'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
        } 
      }); 
      $.ajax({ 
        type: "POST", 
        url: '/delete/'+id,    

        success: function(result) { 
          console.log(result); 
         } 
       });   
      } 
      </script> 
    </body> 
</html> 

私がやったエラーが見つかった場合は、それを見つけてもらえたらうれしいです。

+0

データはすでに削除されているのでしょうか? –

+0

いいえ...ノーイングが削除されました – Hola

答えて

2

このコードを試してみてください、このコードを試してみてください。

function deleteItem(id) { 
$.ajaxSetup({ 
      headers: { 
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
      } 
      }); 
      $.ajax({ 
      type: "POST", 
      url:"{{url('delete')}}", 
      data:{id:id}, 
      success: function(result) { 
      location.reload(); 
      } 
     }); 
      } 
0

これを試してみてください:

$.ajax({ 
    type: "POST", 
    url: url('/delete'), // The correct way to call ajax function in laravel 
    data:{ 
     id: id 
    },  
    success: function(result) { 
      console.log(result); 
     } 
}); 
+0

私は試しましたが、同じエラーが発生しています..内部サーバーエラー ' – Hola

3

一般的に渡すパラメータは良いアイデアではありません削除中。たとえば、/delete/4というURLでデータを削除することができますが、削除ボタンをクリックした後にのみ削除することができます。

$.ajax({ 
      type: "POST", 
      url: "{{url('/delete)}}",    
      data:{id:id} 
      success: function(result) { 
      console.log(result); 
      } 
     }); 

ルート:

と、あなたが削除のために使用する自動laravelコントローラ内で破棄方法を設定することができ、コントローラ

public function delete(Request $request) 
{ 
    $id=$request->id; 
    Item::where(['id'=>$id])->delete(); 
    return Redirect::back();    
} 
+0

あなたのケースではデータが削除されますが、問題はページにリダイレクトされません。私はデータを見ることができません! – Hola

+0

Redirect :: back()が同じページにリダイレクトされている可能性があります。目的のルートにリダイレクトすることができます: 'return redirect( '/ index')' –

0

。それはidを受け入れる。 AJAX用

public function destroy($id){ Item::find($id)->delete(); echo 'Deleted Successfully.'; }

ちょうど方法あなたのトークンを削除を送信します。

jQuery.ajax({ url:'your-controller-route/id', type: 'post', data: {_method: 'delete', _token :token}, success:function(msg){ // do stuff } });

1

function deleteItem(id) { 
var _token = $("input[name='_token']").val(); 
$.ajax({ 
    type: "POST", 
    url: '/task/'+id, 
    data: '_method=DELETE&_token=' + _token, 
    success: function (result) { 
     console.log(result); 
    } 
}); 
} 
関連する問題