【问题标题】:Ajax datatable is not insertingAjax 数据表未插入
【发布时间】:2021-03-24 12:10:24
【问题描述】:

我正在研究 ajax 数据表。我的 AJAX 数据表插入不起作用。它在控制台或任何东西上都没有错误。只是每当我插入时,数据表就会刷新。有什么我错过的吗?我在下面提供了我的代码。任何帮助将不胜感激。非常感谢。

这是我添加时的结果。但它没有添加数据库或任何内容。

观看次数:

<div class="table-responsive">  
                <br/>  
                <button type="button" id="add_button" data-toggle="modal" data-target="#userModal" class="btn btn-info btn-lg">Add</button>  
                <br /><br />  
                <table id="user_datas" class="table table-bordered table-striped">  
                     <thead>  
                          <tr>  
                         
                           <th width="35%">Name</th>  
                           <th width="35%">Email</th>  
                           <th width="10%">Edit</th>  
                           <th width="10%">Delete</th>  
                          </tr>  
                     </thead>  
                </table>  
           </div>  
      </div>  
 </body>  
 </html>  
 <div id="userModal" class="modal fade">  
      <div class="modal-dialog">  
           <form method="post" id="user_form" enctype="multipart/form-data" >  
                <div class="modal-content">  
                     <div class="modal-header">  
                          <button type="button" class="close" data-dismiss="modal">&times;</button>  
                          <h4 class="modal-title">Add User</h4>  
                     </div>  
                     <div class="modal-body">  
                      
                          <input type="text" name="first_name" id="first_name" class="form-control" />  
                          <br />  
                          
                          <input type="text" name="last_name" id="last_name" class="form-control" />  
                          <br />  
                            
                     
                     
<!--                           <input type="file" name="user_image" id="user_image" />   -->
<!--                           <span id="user_uploaded_image"></span>   -->
                     </div>  
                     <div class="modal-footer">  
                          <input type="hidden" name="user_id" id="user_id" />  
                          <input type="submit" name="action" id="action" class="btn btn-success" value="Add" />  
                          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>  
                     </div>  
                </div>  
           </form>  
      </div>  
 </div>  

阿贾克斯:

 <script type="text/javascript" language="javascript" >  
 $(document).ready(function(){  
      $('#add_button').click(function(){  
           $('#user_form')[0].reset();  
           $('.modal-title').text("Add User");  
           $('#action').val("Add");  
 
      })  
      var dataTable = $('#user_datas').DataTable({  
           "processing":true,  
           "serverSide":true,  
           "order":[],  
           "ajax":{  
                url:"<?php echo base_url() . 'profile/fetch_user'; ?>",  
                type:"POST"  
           },  
           "columnDefs":[  
                {  
                     "targets":[0, 3, 3],  
                     "orderable":false,  
                },  
           ],  
      });  
      $(document).on('submit', '#user_form', function(event){  
           event.preventDefault();  
           var name = $('#name').val();  
           var email = $('#email').val();   
           
          
     
     if(name != '' && email != '')  
           {  
                $.ajax({  
                     url:"<?php echo base_url() . 'profile/user_action'?>",  
                     method:'POST',  
                     data:new FormData(this),  
                     contentType:false,  
                     processData:false,  
                     success:function(data)  
                     {  
                     console.log(name);
                     console.log(email);
                      
                          alert(data);  
                          $('#user_form')[0].reset();  
                          $('#userModal').modal('hide');  
                          dataTable.ajax.reload();  
                     }  
                });  
           }  
           else  
           {  
                alert("Fields are Required");  
           }  
      });  
      }); 
 
  
 </script>  

控制器:

function fetch_user(){
            $this->load->model("profiles");
            $fetch_data = $this->profiles->make_datatables();
            $data = array();
            foreach($fetch_data as $row)
            {
                $sub_array = array();

                $sub_array[] = $row->name;
                $sub_array[] = $row->email;
                $sub_array[] = '<button type="button" name="update" id="'.$row->id.'" class="btn btn-warning btn-xs update">Update</button>';
                $sub_array[] = '<button type="button" name="delete" id="'.$row->id.'" class="btn btn-danger btn-xs delete">Delete</button>';
                $data[] = $sub_array;
            }
            $output = array(
                "draw"                    =>     intval(isset($_POST["action"] )),
                "recordsTotal"            =>     $this->profiles->get_all_data(),
                "recordsFiltered"         =>     $this->profiles->get_filtered_data(),
                "data"                    =>     $data
            );
            echo json_encode($output);
        }
        function user_action(){
            if(isset($_POST["action"])){
                if($_POST["action"] == "Add")
                {
                    $insert_data = array(
                        'name'          =>     $this->input->post('name'),
                        'email'           =>     $this->input->post("email.")

                    );
                    $this->load->model('profiles');
                    $this->profiles->insert_crud($insert_data);
                    echo 'Data Inserted';
                }
            }

        function fetch_single_user()
        {
            $output = array();
            $this->load->model("profiles");
            $data = $this->profiles->fetch_single_user($_POST["user_id"]);
            foreach($data as $row)
            {
                $output['name'] = $row->name;
                $output['email'] = $row->email;
               
            }
            echo json_encode($output);
        }
}

型号:

var $table = "userss";
    var $select_column = array("id", "name", "email");
    var $order_column = array(null, "name", "email", null, null);
    function make_query()
    {
        $this->db->select($this->select_column);
        $this->db->from($this->table);
        if(isset($_POST["search"]["value"]))
        {
            $this->db->like("name", $_POST["search"]["value"]);
            $this->db->or_like("email", $_POST["search"]["value"]);
        }
        if(isset($_POST["order"]))
        {
            $this->db->order_by($this->order_column[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
        }
        else
        {
            $this->db->order_by('id', 'DESC');
        }
    }
    function make_datatables(){
        $this->make_query();
        if($_POST["length"] != -1)
        {
            $this->db->limit($_POST['length'], $_POST['start']);
        }
        $query = $this->db->get();
        return $query->result();
    }
    function get_filtered_data(){
        $this->make_query();
        $query = $this->db->get();
        return $query->num_rows();
    }
    function get_all_data()
    {
        $this->db->select("*");
        $this->db->from($this->table);
        return $this->db->count_all_results();
    }
    function insert_crud()
    {
        $this->db->insert('userss', $data);
    }

【问题讨论】:

  • 您查看浏览器的网络标签了吗?
  • 您好,感谢您的回复。是的,它产生这些输出。 prnt.sc/10uqbu0

标签: ajax codeigniter codeigniter-3


【解决方案1】:

您的数据库结构是什么?该表称为 users 还是 users?

$this->db->insert('userss', $data); <--Possible typo?

您可能需要使用浏览器的检查功能并查看网络选项卡下的任何响应以查看任何错误。

【讨论】:

  • 您好,感谢您的回复。我正在做一个测试,这就是为什么它有双“s”prnt.sc/10uqajo
  • 响应和预览选项卡下显示什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 2019-05-18
  • 1970-01-01
  • 1970-01-01
  • 2014-03-14
  • 2020-04-17
  • 2014-05-19
相关资源
最近更新 更多