无法使用JSON加载数据表

时间:2016-04-14 19:56:50

标签: javascript jquery ajax datatables

我正在尝试将JSON加载到jQuery数据表中。

当使用以下方法触发change事件时,我可以向控制台返回我需要在数据表中加载的完全相同的数据:

 $('#serviceload').change(function()
 {
   var page = $('#serviceload').val();

   $.ajax({
     "type": 'POST',
     "url": 'api/service_teus.php',
     "data": {page:page},
     //"dataType": 'json',
     "success": function(data){
        console.log('success', data);
     },
     "error": function(msg){
        console.log('fail', msg);
     }
   });
 });

现在当我更改上面的代码以包含数据表时,这就是我被困的地方:

 $('#serviceload').change(function()
 {
   var page = $('#serviceload').val();

   var $dataTable = $('#example1').DataTable({
     "ajax":{
       "url": 'api/service_teus.php',
       "data": {page:page},
       "dataType": 'json',
       "success": function(data){
         console.log('success', data);
        },
       "error": function(msg){
         console.log('fail', msg);
        }
      }
 });

使用上述方法,控制台返回一个对象数组,但不加载数据表。

回答这个问题实际上会帮助我回答我发布的另一个问题。

2 个答案:

答案 0 :(得分:3)

您的dataTable可能是使用ajax承诺生成的,而不是返回的数据。在成功函数中生成数据表,而不是使用整个ajax语句。

像这样。

$('#serviceload').change(function()
 {
   var page = $('#serviceload').val();

   $.ajax({
     "type": 'POST',
     "url": 'api/service_teus.php',
     "data": {page:page},
     "dataType": 'json',
     "success": function(data){
        console.log('success', data);
        $dataTable = $('#example1').DataTable(data);
     },
     "error": function(msg){
        console.log('fail', msg);
     }
   });
 });

答案 1 :(得分:0)

我在本页中使用了我的答案:Load JQUERY DATATABLE on CHANGE event

我终于可以继续前进了。