2016-09-07 15 views
-2

私はLaravel 5.3を使用しています。私はブレードのテンプレートを使用してデータを挿入したいです。しかし私は私が毎回リフレッシュされた送信ボタンを押してください。何をすべきか?誰もが、どのようにajaxのURL、タイプ、データを使用するように教えてくださいAjaxを使用してデータを挿入

+0

をあなたがこれまで行ってきたあなたのreleventコードを入れてくださいことはできますか? –

答えて

-1

私はちょうどあなたがajaxについて話している場合はjqueryを使用していると仮定します。それは本当に簡単です。あなたのlaravelルートは、 "post"、 "get"、 "patch"、 "delete"のメソッドを聞きます。今、あなたはAJAX呼び出しにビューを返すようには思わないだろうAJAXを使用することを

$.ajax({ 
    method: "POST", 
    url: "/posts", 
    data: { title: "Hello World", text: "..." } 
}) 
    .done(function(post) { 
    // assuming you return the post 
    alert(post.title + " created"); 
    }); 

:例 - これらの

すべては、Ajaxリクエストを作成することができます。今コントローラは、AJAX呼び出しでデータを返しますし、リダイレクトされます

public function store(Request $request) { 
    $post = App\Post::create($request->all()); 

    if($request->ajax()) { 
     return $post; 
    } else { 
     return redirect('/posts'); 
    } 
} 

:あなたは、私が最も簡単な例に

コントローラの機能を提供します(など、ヘルパー関数を新しいルートを作成します)ここでは異なるオプションがありますajaxのないデフォルトの呼び出しで

最後に、最後に気をつけるべきことがあります。 Webミドルウェアが適用されている場合(デフォルトで完了)、csrfトークンを処理する必要があります。これを処理するための最も簡単な方法は、(など、すべての呼び出しを行う前に)あなたのhtml頭

、その後にメタタグを追加することであるあなたのAJAXを設定するには、このを追加

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

このあなたの頭の中にある有効なcsrfトークンをすべてのajax呼び出しに追加し、あなたがトークンミスマッチ例外を実行しないようにします。心に留めておくべき

もの: - あなたが1つのページに非常に長いとどまればトークンは(laravel-カフェインはここに役立ちます)有効期限が切れるかもしれません - あなたが提出しようとする場合は、AJAXの検証を処理する必要が

0

を呼び出しますJavascriptを使用してフォームのデフォルトアクションがe.preventDefault()であることを確認してください。このコードは、通常の方法で送信されたフォームを防ぎます。ちょうどあなたのAJAX呼び出しラップするためにこのコードを追加します。

$('#form-id').submit(function(e){ 
    e.preventDefault(); 

    $.ajax({...}); 
}); 
関連する問題