提交的数据没有';t被存储在数据库中,我在提交后被重定向


Submitted data doesn't get stored in database and i get redirected after submit

嗨,我正在开发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;
});

或者检查这个工作示例。希望这能有所帮助。