2016-09-07 99 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({...}); 
});