如何在 Laravel 中通过 Ajax 提交表单
How to submit forms via Ajax in Laravel
我只是想知道如何在 Laravel
中使用 Ajax 提交表单
Laravel 本身并未在其文档中提供有用的提示或工作流程
是否有一些有用的库理想地作为 jquery 的扩展?
我正在寻找不显眼的 javasctipt 解决方案
您正在寻找 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 中或直接在输入上方)
这是一个使用 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');
}
这样的例子有什么问题吗?
在同一个域中
我的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
在我的控制器@sendcontacto
public function sendContacto(Request $request)
{
$name = $request->input("name");
$email = $request->input("email");
$message = $request->input("message");
//Do something
}
我只是想知道如何在 Laravel
中使用 Ajax 提交表单Laravel 本身并未在其文档中提供有用的提示或工作流程
是否有一些有用的库理想地作为 jquery 的扩展?
我正在寻找不显眼的 javasctipt 解决方案
您正在寻找 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 中或直接在输入上方)
这是一个使用 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');
}
这样的例子有什么问题吗?
在同一个域中
我的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
在我的控制器@sendcontacto
public function sendContacto(Request $request)
{
$name = $request->input("name");
$email = $request->input("email");
$message = $request->input("message");
//Do something
}