在 Laravel 中调用 ajax 后数据表无法正常工作

Posted

技术标签:

【中文标题】在 Laravel 中调用 ajax 后数据表无法正常工作【英文标题】:Datatable is not working after ajax call in Laravel 【发布时间】:2021-04-27 03:13:21 【问题描述】:

DataTable 无法正常工作。数据显示在表格上,但搜索、分页不起作用。我使用ajax请求来获取数据。

这是我的控制器代码

 $products = FoodItemPrice::with('items')->get();

        if ($request->ajax()) 
            return response()->json($products);
        

这是我的 ajax 调用

function getData()

 
 $.ajax(

        url: "url('admin/category/')",
        method:"GET",
        contentType:false,
        cache: false,
        processData:false,
        dataType:"json",

        success: function(response)
              var data = ""
              var i = 1;
              $.each(response, function(key, value)
                data = data + "<tr>"
                data = data + "<td>"+i+++"</td>"
                data = data + "<td>"+value.name+"</td>"
                data = data + "<td class='actionBtn'>"
                data = data + "<button type='button' class='ms-btn-icon btn-dark mr-3' onclick='editCategory("+value.id+")'> <i class='flaticon-pencil'></i></button>"
                data = data + "<button type='button'class='ms-btn-icon btn-danger'  onclick='deleteData("+value.id+")'> <i class='flaticon-trash'></i></button>"
                data = data + "</td>"
                data = data + "</tr>"
              );
               $('tbody').html(data);
        
          
  );
  
getData();

Here is dataTable scripts 


    $(document).ready(function() 
    
        $('#dataTable').DataTable();
     );

问题出在哪里?谁能告诉我怎么解决?

【问题讨论】:

使用 Datatable 的内置 AJAX 功能,而不是手动附加您自己的功能。这样,它将为您处理搜索/分页/排序,而无需您手动进行。 【参考方案1】:

我推荐你使用 Laravel Yajra Datatable 并使用内置的 Datatable 服务器端数据加载 https://github.com/yajra/laravel-datatables

【讨论】:

以上是关于在 Laravel 中调用 ajax 后数据表无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

AJAX 调用的 Laravel 路由无法正常工作

无法从 laravel 中的 AJAX 调用中获取 responseText

多次尝试后,Laravel 5.5 在 ajax 调用中不断收到 419 发布错误

ajax后Laravel刷新数据

使用 Jsonp 进行 $.ajax 调用后无法在 Jquery 中检索数据

Laravel Datatables ajax无法发送参数进行查询