首页 > 解决方案 > 如何在不使用模型的情况下通过查询构建器方法使用 ajax 将 laravel 中的数据插入/发布到数据库中

问题描述

这是我在 Bootstrap 模式中的表单。

<!-- Start BS Modal- Add Data Form -->
    <div id="studentModal" class="modal fade" role="dialog">
        <div class="modal-dialog modal-md">
          <div class="modal-content">
            <form method="POST" id="student_form" >
                <div class="modal-header">
                  <button type="button" class="close" data-dismiss="modal">&times;</button>
                  <h4 class="modal-title">Add New Student</h4>
                </div>
                <div class="modal-body">
                  {{ csrf_field() }}
                  <span id="form_output"></span>
                  <div class="form-group">
                    <label>First Name</label>
                    <input type="text" name="first_name" id="first_name" class="form-control" placeholder="Enter Your First name">
                  </div>
                  <div class="form-group">
                    <label>Last Name</label>
                    <input type="text" name="last_name" id="last_name" class="form-control" placeholder="Enter Your Last name" >
                  </div>             
                </div>
                <div class="modal-footer">
                    <input type="hidden" name="button_action" id="button_action" value="insert" />
                    <input type="submit" name="submit" id="action" class="btn btn-success pull-left" value="Add" >
                    <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button> 
                </div>
            </form>
          </div>
        </div>
    </div>
<!-- End - BS Modal -->

当我单击此按钮时,添加新是一个 id=add_data 的按钮。它向我展示了具有形式的引导模式。用于此的 JavaScript 如下:

$('#add_data').click(function(){
            $('#studentModal').modal('show');
            $('#student_form')[0].reset();
            $('#form_output').html('');
            $('#button_action').val('insert');
            $('#action').val('Add');
        });

当我单击具有 id=action 的提交按钮时,您可以在表单代码的输入标记中看到。下面给出了用于此的 Javascript: //Insert - 脚本

$('#student_form').on('submit', function(event){
            event.preventDefault();
            var form_data = $(this).serialize();
            $.ajax({
                type:"ajax",
                method:"post",
                url:"{{ url('postdata') }}",
                data:form_data,
                dataType:"json",
                success:function(data){
                    alert("Success");
                },
                error: function(data){
                    alert("Error");
                }
            })
        });

如何使用 csrf 令牌在 JS 中获取表单输入值?路线上应该有什么?控制器中应该有什么?

我在控制器中使用简单的查询从数据库中读取/获取数据,就像;

public function readData(){
    $student = DB::Table('user')->get();
    return response($student);
}

我需要像这样用于从数据库获取数据的简单代码。

标签: javascriptphpajaxlaravel-5bootstrap-modal

解决方案


使用查询构建器插入方法

DB::table('users')->insert(
    ['email' => 'john@example.com', 'votes' => 0]
);

推荐阅读