2016-09-07 113 views
-2

我正在使用Laravel 5.3。我想使用刀片模板插入數據。但是當我按下提交按鈕時,它每次都會刷新。該怎麼辦?並請任何人告訴我如何使用Ajax的網址,類型,數據使用Ajax插入數據

+0

您可以將您迄今爲止所做的相關代碼放到哪裏? –

回答

-1

我只是假設你正在使用jQuery,如果你在談論AJAX。這很簡單。您的laravel路線聽取「發佈」,「獲取」,「補丁」,「刪除」方法。這些

一切都可以用一個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調用數據,並且將您重定向在沒有Ajax的情況下進行默認調用。

最後你要記住最後一件事。如果您應用了網絡中間件(默認情況下已完成),則需要處理csrf令牌。最簡單的方法來處理這個問題是(做所有你的電話前等)加入了元標記您的HTML頭

,然後添加這個來配置你的Ajax

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

這會在您的頭部添加有效的csrf標記給每個ajax調用,並確保您不會遇到標記不匹配異常。

事情要記住: - 如果你留很長的上一個頁面符號可能到期(laravel咖啡因會幫助這裏) - 你需要處理驗證了AJAX調用

0

如果你試圖提交通過Javascript確保防止表格默認動作e.preventDefault()。此代碼阻止以正常方式提交表單。只需添加以下代碼來包裝您的AJAX呼叫:

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

    $.ajax({...}); 
});