2016-04-29 37 views
1
通過Ajax提交表單

我只是想知道如何使用Ajax提交表單在Laravel如何Laravel

Laravel本身不提供的說明文件中有用的提示或工作流

有一些有用的庫idealy作爲jQuery的擴展?

林尋找一個不引人注目的javasctipt解決

回答

1

您正在尋找https://github.com/whipsterCZ/laravel-ajax

它正是你想要和更什麼!

通過AJAX發送形式是簡單的這樣的 - 不需要任何配置

HTML

<form action="" class="ajax">...</form> 

控制器

public function update(ClientRequest $request, Client $client) 
{ 
    $client->update($request->all()); 
    $request->session()->flash('success', 'Client has been updated.'); 

    return \Ajax::redirect(route('clients.index')); 
} 

它還驗證形式(通過自定義FormRequest),並顯示錯誤(在errorBag或直接在輸入上方)

+0

這是Laravel基本的AJAX工作流程。如果你熟悉** Nette Framework **,你就在家... – WhipsterCZ

0

這是一個exe mple使用jQuery

$(document).ready(function() 
         { 
         $(document).on('submit', '#reg-form', function() 
         { 
         var data = $(this).find("#post_id").val(); 
         $.ajax({ 
         type : 'POST', 
         url : '{{url("/ajax")}}', 
         data: {'name':data, '_token': $('input[name=_token]').val()}, 
         success: function(data) { 
         //do stuff 
         }, 

          error : function(data) 
          { 
           alert("Fix thist"); 
          } 
         }); 
         return false; 
         }); 

         }); 

控制器

if (\Request::ajax()) { 
    // Do stuff 
      return response()->json('success'); 
     } 

哪些錯誤這樣的個例?

0

在同一個域中

我form.blade.php

<form action="" id="contact-form" class="form-contact"> 
    <input type="text" name="name" id="contact_name" placeholder="Name"> 
    <input type="email" name="email"id="contact_email" placeholder="Email"> 
    <textarea name="message" id="contact_message" placeholder="Message"></textarea> 
    <input type="submit" class="bnt-submit" value="Send"> 
</form> 

我function.js

$("#contact-form").submit(function(){ 
    formulario = $("#contact-form"); 
      url = "http:://MyDomin/sendContacto"; 
        $.ajax({ 
         method: "POST", 
         url: url, 
         data: formulario.serialize() 
        }) 
         .done(function(response) { 
          msg = ' <div class="alert alert-success" role="alert">'+arrMsgs[lang]["message_send"]+'</div>'; 
          $("#messages").append(msg); 
         }); 
}) 

添加路由sendContact在routes.php文件和ASIGN功能sencContacto

In My Contrller @ sendcontacto

public function sendContacto(Request $request) 
{ 
    $name = $request->input("name"); 
    $email = $request->input("email"); 
    $message = $request->input("message"); 
//Do something 
}