我只是想知道如何在Laravel中使用Ajax提交表单
Laravel本身并未在其文档中提供有用的提示或工作流程
是否有一些有用的库理想作为jquery的扩展?
我正在寻找不引人注目的javasctipt解决方案
答案 0 :(得分: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中或直接在输入上方)
答案 1 :(得分:0)
这是一个使用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');
}
这样的例子有什么问题?
答案 2 :(得分: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);
});
})
在routes.php中添加路由sendContact并设置函数sencContacto
在我的Contrller @ sendcontacto
中public function sendContacto(Request $request)
{
$name = $request->input("name");
$email = $request->input("email");
$message = $request->input("message");
//Do something
}