2016-06-11 5 views
0

は、私は私のadministrar.blade.php上確認メッセージのモーダルでlaravelで削除しますか?

routes.phpの

Route::delete('/administrar/invitacion/{id}', '[email protected]'); 

が、私は選択を持っている理由私はこれを持っていますが、知らん動作していない、ルート上の私のURLを使用してjQueryの経由で何かを削除したいです私は2つのボタン

<!-- Modal borrar --> 
               <div class="modal fade" id="borrar" role="dialog"> 
                <div class="modal-dialog"> 
                 <!-- Modal content--> 
                 <div class="modal-content"> 
                  <div class="modal-header"> 
                   <button type="button" class="close" data-dismiss="modal">&times;</button> 
                   <h4 class="modal-title">Borrar invitación</h4> 
                  </div> 
                  <div class="modal-body"> 
                   <p>¿Estás seguro que quieres cancelar esta invitación?</p> 
                  </div> 
                  <div class="modal-footer"> 
                   <button type="button" id="delete_invite" class="btn btn-warning" data-dismiss="modal">Si</button> 
                   <button type="button" class="btn btn-default" data-dismiss="modal">No</button> 
                  </div> 
                 </div> 
                </div> 
               </div> 

invitacionController.php

public function eliminarInvitacion(Request $request, Invite $invite) 
    { 
     $this->authorize('destroy', $invite); 

     $invite->delete(); 

     return redirect('/administrar'); 
    } 
0とidと、このモーダルを取得する場所私のjsの

$('#borrar').on('click', '#delete_invite', function(e) { 

     $id = $("#selectinv option:selected").val(); 
     $.ajax({url: "/administrar/invitacion/"+$id, type: 'DELETE', success: function(result){ 


     }}); 
    }) 

答えて

0

フォームずに削除するには、ちょうどJS私の例で

<input type="hidden" id="token" name="_token" value="{{ csrf_token() }}"> 

その後、私のボタンの前にこれを追加する必要がありました:私は使用していた

$('#borrar').on('click', '#delete_invite', function(e) { 
    //Declaration 
    var token = $('#token').val(); 
    var id = $("#selectinv option:selected").val(); 

    $.ajaxSetup({ 
     headers: { 
      'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') 
     } 
    }); 

    //Delete request 
    $.ajax({ 
     type: 'DELETE', 
     url: '/administrar/invitacion/' + id, 
     data: { _token :token }, 
     success: function(data){ 
      window.location="/administrar"; 
     } 
    }); 

}); 
0

あなたがRoute::deleteを使用していて、CSRFトークンを投稿していないので、これは動作しません。この作業を行うには、ルートをRoute::getに変更するか、CSRFトークンを送信する必要があります。

この詳細については、https://laravel.com/docs/master/routing#csrf-protectionを参照してください。

また、なぜajaxコールが機能していないのかわからない場合は、コンソールを開き、[ネットワーク]タブをクリックしてからajaxリクエストを実行してください。リクエストは下部に表示され、クリックすると詳細が表示されます。

+0

取り払わ{{csrf_field()}}とフォーム上で{{method_field( 'DELETE')}}、私はここにフォームを使用していません。IDのボタンだけです。私はモデム全体で投稿を編集しました。 csrfを使ったフォームかどうか? – Sociopath

+0

フォームを使用しないときは、GETリクエスト(私が知る限り)だけが可能です。パッチを削除、パッチ、パッティング、または保存するときは、csrfトークンを使用してフォームを使用する必要があります。 –

+0

これをajaxとDELETE要求で行う場合は、{{csrf_field()}}とinvitacion idを持つフォームを作成してください。次に、#borrarボタンをクリックすると、フォームをsubmit()し、 'data:$(theForm).serialize();'でajaxリクエストを行います。 –

関連する問題