您好我正在使用php Laravel,我正在尝试从模态提交数据,我想要它,只需在提交成功后关闭模式,而不是重定向。但两者都没有工作,所以提交后我被重定向,提交后,数据库中没有添加数据。
所以在填写表单中的数据后,按提交,它会将我重定向到\
页面,我检查数据库,没有添加任何内容。但是我可以从中提取数据,所以它不是连接或配置。
我希望在提交后留在同一页面上,只需关闭模态(我稍后会成功)。
这是我的in-modal形式:
<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代码,让我意识到它甚至没有被执行,但仍然提交,而不是到达页面是另一个需要解决的问题。
答案 0 :(得分:1)
你有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 Docs他们应该向您解释更多内容。
当你说它总是重定向到\
时,它会检查你是否已登录,因为它无法检查csrf令牌(你没有包括)。
<强>已更新强>
至于提交,我不知道它为什么不停止提交,但我试过
$("#formi_id").submit(function(e){
return false;
});
或查看此working example。 希望这会有所帮助。