【问题标题】:Ajax submit form Laravel 5.1Ajax 提交表单 Laravel 5.1
【发布时间】:2016-12-10 21:59:01
【问题描述】:

大家好,当用户可以提交他们的帖子时,我尝试在 Laravel 5.1 中找出一个 Live feed 应用程序。我仍然坚持使用 Ajax,因为我想将数据保存在 DB usign Ajax 请求中。

这是我的表格

{!! Form::open(array('url'=>'saveposts','method'=>'POST')) !!}                     
                     <div class="panel-body">
                        <textarea name="post" class="form-control share-text" rows="3" placeholder="Share your status..."></textarea>
                    </div>
                    <div class="panel-footer share-buttons">
                      <a href="#"><i class="fa fa-map-marker"></i></a>
                      <a href="#"><i class="fa fa-photo"></i></a>
                      <a href="#"><i class="fa fa-video-camera"></i></a>
                     <button type="submit" class="send-btn btn btn-primary btn-xs pull-right display-none" id="submit">Post</button> 
                    {!! Form::close() !!}

这里是 Ajax 脚本

<script type="text/javascript">
$(document).ready(function(){
  $('#submit').click(function(){            
    $.ajax({
      url: 'saveposts',
      type: "post",
      data: {'post':$('input[name=post]').val(), '_token': $('input[name=_token]').val()},
      success: function(data){
        alert(data);
      }
    });      
  }); 
});
</script>

路线:

Route::post('saveposts', 'UserController@savePosts');

以及Controller中的方法

public function savePosts() {
    if(Requestjx::ajax()) {
        $data = Input::all();
        return Response::json([
                'error' => false,
                'insertedData' => $data
            ], 200);
    }
}

怎么了?它没有用。任何帮助表示赞赏。谢谢

【问题讨论】:

  • 如果将 ajax 调用中的 url 设置为“/saveposts”会怎样?顺便说一句,“saveposts”不是一个好的路线名称,请查看最佳实践:vinaysahni.com/…
  • 您好,感谢您的回答。如果我将 / 添加到 url,什么都不会改变...
  • 成功了吗?如果不是,您会遇到什么错误?

标签: jquery ajax forms laravel-5.1


【解决方案1】:

您的控制器方法需要注入请求。 我不知道“Requestjx”是什么????我假设拼写错误。 试试这个:

public function savePosts(Request $request) {
    if($request->ajax()){
        $data = Input::all();

        return response()->json([
          'error' => false,
          'insertedData' => $data
        ]);
    }
}

【讨论】:

  • 空白页,数据库中没有保存数据
  • 好的,你确定控制器工作正常吗?将 Route 从 post 更改为 get,转到浏览器中的 url 并确保您得到响应。不要忘记删除输入内容:
  • 公共函数 savePosts(Request $request) { return response()->json([ 'testing' => 'testing' ]); }
  • 是控制器工作并正确呈现 json 数据
【解决方案2】:

解决了。问题是由于某种原因“按钮”标签不能正确调用 Ajax。所以我创建了一个调用 ajax 请求的“a”链接,现在也可以正常工作了。

【讨论】:

    猜你喜欢
    • 2016-04-22
    • 2016-10-31
    • 2015-10-25
    • 2015-02-05
    • 2017-01-05
    • 2019-02-06
    • 2020-03-25
    • 2015-12-20
    • 2016-12-16
    相关资源
    最近更新 更多