嗨,我正在开发php Laravel,我正在尝试从模态提交数据,我希望它在提交成功后关闭模态,而不是重定向。但两者都不起作用,所以在提交后我被重定向,在提交后,数据库中没有添加任何数据。
因此,在表单中填写数据后,按提交,它会将我重定向到'
页面,然后我检查数据库,没有添加任何内容。然而,我可以从中提取数据,所以这不是连接或配置。
我想在提交后保持在同一页面上,只需关闭模态(稍后我会不高兴成功)。
这是我的模态形式:
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-body">
<form id="eventForm" method="post" action="createEvent">
//a couple inputs
//a submit button
</form>
</div
</div>
这是处理数据提交和非重定向的jQuery
$(document).ready(function() {
$('#eventForm')
.formValidation({
framework: 'bootstrap',
//icon,fields validation
})
.on('success.form.bv', function (e) {
e.preventDefault();
var $form = $("#eventForm"),
url = $form.attr('action');
$.post(url, $form.serialize()).done(function () {
$("#myModal").dialog("close");
});
});
});
我的路线
route::post('createEvent' , 'EventsController@store');
处理请求的控制器
public function store(Request $request)
{
$event= new event();
//retrieving the data here
$event->name = $request->name;
$event->description = $request->description;
$event->ending_date = $request->ending_date;
$event->starting_date = $request->starting_date;
$event->assigned_to = $request->assigned_to;
$event->save();
}
名称空间和用途是正确的,但如果你愿意,我可以发布它们。有什么建议吗?
更新
在开发工具中,我查看了网络部分,发现请求正在发送,但只是302重定向,javascript代码没有执行,所以当我点击提交按钮时,它正在提交。
尝试console.log javascript代码,让我意识到它甚至没有被执行,但仍然是提交,无法到达页面是另一个需要解决的问题。
您有CSRF令牌检查吗?如果是这样,请在发布时包含您的代币,如下所示:
<meta name="csrf-token" content="{{ csrf_token() }}">
以这样一个字段的形式:
<form method="POST" action="/profile">
{{ csrf_field() }}
...
</form>
或者通过将您的路线排除在csrf检查之外,如下所示(检查您的VerifyCsrToken.php)
class VerifyCsrfToken extends BaseVerifier
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
'stripe/*',
];
}
查看这些Laravel文档,它们应该会向你解释更多。
当你说它总是重定向到'
时,这意味着它会检查你是否登录,因为它无法检查csrf令牌(你没有包括)。
更新
至于提交,我不知道为什么它没有停止提交,但我尝试了
$("#formi_id").submit(function(e){
return false;
});
或者检查这个工作示例。希望这能有所帮助。