【问题标题】:How to successfully Insert into database using ajax in laravel?如何在 laravel 中使用 ajax 成功插入数据库?
【发布时间】:2020-11-13 01:51:05
【问题描述】:

请尝试在 laravel 中使用 ajax 请求将数据插入我的数据库。我遇到了错误,我真的找不到解决办法。以下是我到目前为止所做的。

标题

<link href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
    <script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<meta name="_token" content="{{csrf_token()}}"/>

刀片文件

<div class="content">
        <form class="btn-submit" id="ajax" action="{{URL::to('insert-academic')}}">

           <div class="form-group">
                <label>Academic Year</label>
                <input type="text" name="academic_year" class="form-control" placeholder="title" required="">

            </div>

            <div class="form-group">
                <label>Description</label>
                <input type="text" name="academic_description" class="form-control" placeholder="details" required="">
            </div>

            <div class="form-group">
                <label>Semester</label>
                <input type="text" name="academic_semester" class="form-control" placeholder="details" required="">
            </div>

           
            <div class="form-group">
                <button class="btn btn-success">Submit</button>
            </div>

        </form>

       </div>


<script type="text/javascript">


    $("#ajax").click(function(event) {
    event.preventDefault();

    $.ajax({
        type: "post",
        url: "{{ url('postinsert') }}",
        dataType: "json",
        data: $('#ajax').serialize(),
        success: function(data){
              alert("Data Save: " + data);
        },
        error: function(data){
             alert("Error")
        }
    });
});
</script>

路线

Route::post('insert-academic', 'AcademicYearController@addAcademic');

控制器文件

 public function addAcademic(Request $request)
    {
        $aca_year = new AcademicYear;
        $aca_year -> academic_year = $request->input('academic_year');
        $aca_year -> academic_description = $request->input('academic_description');
        $aca_year -> academic_semester = $request->input('academic_semester');
        $aca_year->save();



    if ($aca_year) {
        return response()->json([
            'status'     => 'success']);
    } else {
        return response()->json([
            'status' => 'error']);
    }
    }

出现错误..请问如何成功地将数据添加到数据库中

【问题讨论】:

  • 请分享控制器文件逻辑和你发现问题的错误。
  • 请我更新我的帖子。请协助
  • 究竟是什么错误?请将错误也复制粘贴到问题中。
  • 收到警报 192.168.43.61 说错误。我在本地网络上运行

标签: php ajax laravel eloquent


【解决方案1】:

使用提交而不是点击。如果您绑定单击,它将在您单击表单中的任意位置时触发。需要绑定提交事件。

$("#ajax").on('submit', function(event) {
    event.preventDefault();

    $.ajax({
        type: "post",
        url: "{{ url('postinsert') }}",
        dataType: "json",
        data: $('#ajax').serialize(),
        success: function(data){
              alert("Data Save: " + data);
        },
        error: function(data){
             alert("Error")
        }
    });
});

【讨论】:

  • 我已经完成了,但我得到了错误我已经用控制器逻辑更新了我的帖子
【解决方案2】:

刀片文件 - 删除表单操作属性,因为它没有用。

<div class="content">
        <form class="btn-submit" id="ajax">
            <div class="form-group">
                <label>Academic Year</label>
                <input type="text" name="academic_year" class="form-control" placeholder="title" required="">
            </div>
            <div class="form-group">
                <label>Description</label>
                <input type="text" name="academic_description" class="form-control" placeholder="details" required="">
            </div>
            <div class="form-group">
                <label>Semester</label>
                <input type="text" name="academic_semester" class="form-control" placeholder="details" required="">
            </div>
         <input type="hidden" name="_token" value="{{ csrf_token() }}">
            <div class="form-group">
                <button class="btn btn-success">Submit</button>
            </div>
        </form>
    </div>
    <script type="text/javascript">
        $("#ajax").on('submit', function(event) {
            event.preventDefault();
            $.ajax({
                type: "post",
                url: "{{route('postinsert')}}",
                dataType: "json",
                data: $('#ajax').serialize(),
                success: function(data){
                    alert("Data Save: " + data);
                },
                error: function(data){
                    alert(data);
                }
            });
        });
    </script>

路线:为路线添加名称

Route::post('insert-academic', 'AcademicYearController@addAcademic')->name('postinsert);

控制器方法:

public function addAcademic(Request $request){
        $aca_year = new AcademicYear;
        $aca_year->academic_year = $request->academic_year;
        $aca_year->academic_description = $request->academic_description;
        $aca_year->academic_semester = $request->academic_semester;
     
    if ($aca_year->save()) {
        return response()->json(['status'=> 'success']);
    } else {
        return response()->json(['status'=> 'error']);
    }
}

【讨论】:

  • 它正在工作.. 非常感谢 Alok p
  • 欢迎,记住我在表单标签中添加了&lt;input type="hidden" name="_token" value="{{ csrf_token() }}"&gt;,因为我们必须通过表单提交发送csrf令牌
  • 注意到了。谢谢
猜你喜欢
  • 1970-01-01
  • 2018-04-17
  • 1970-01-01
  • 2018-06-23
  • 2021-05-08
  • 1970-01-01
  • 2017-07-21
  • 2023-03-14
  • 1970-01-01
相关资源
最近更新 更多