提交的数据不会存储在数据库中,我会在提交后重定向

时间:2016-07-27 13:49:18

标签: php jquery laravel-5

您好我正在使用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代码,让我意识到它甚至没有被执行,但仍然提交,而不是到达页面是另一个需要解决的问题。

1 个答案:

答案 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。 希望这会有所帮助。