2017-06-29 42 views
1

在服務器端模式下使用DataTable 1.10.15。我創建了一個PHP腳本來提供JSON響應,其中包括他們在文檔中提到的參數:https://datatables.net/manual/server-side#Returned-dataDataTables使用您自己的參數讀取ajax響應

我想將自己的參數添加到JSON響應中,例如,

$response = [ 
    'data' => [ ], // Required by DataTables 
    'form_errors' => [ ] // Not required by DataTables 
]; 
echo json_encode($response); 

,我對Ajax調用JS的是這樣的:

var myTable = $('#myTable').DataTable({ 
    "serverSide": true, 
    "ajax": { 
     "url" : "/response.php", 
     "method" : "POST" 
    }, 
}); 

我怎麼能讀Ajax響應?我在API中看到有一個.on('xhr')方法(https://datatables.net/reference/event/xhr),它在ajax請求完成時觸發。

var myTable = $('#myTable').DataTable({ 
    "serverSide": true, 
    "ajax": { 
     "url" : "/response.php", 
     "method" : "POST" 
    }, 
}).on('xhr.dt', function() { 
    // Read response here? 
}); 

但我找不到一種方法來讀取在那一點上的ajax響應數據。

有誰知道這是可能的嗎?

回答

-1

你可以閱讀使用Ajax回調方法這樣的迴應:

var myTable = $('#myTable').DataTable({ 
    "serverSide": true, 
    "ajax": { 
     "url" : "/response.php", 
     "method" : "POST" 
    }, 
    success: function(data) { 
     // Request success 
     console.log(data);  
    }, 
    error: function(data) { 
     // Request failed 
     console.log(data); 
    } 
}); 

我希望它幫你!

+1

Unfortuantely它https://datatables.net/reference/option/ajax說:「成功一定不能被重寫,因爲它是使用內部在DataTables「 – Andy

+1

我認爲這可能與這個https://datatables.net/reference/option/ajax.dataSrc – Andy

+1

是的,使用'dataSrc'回調,這是dataTables」成功「 - 處理程序.. 。 – davidkonrad

0

你可以像這樣做,初始化代碼塊後:

myTable.on('xhr', function() { 
     var json = oTable.ajax.json(); 
     if (json) { 
      // read the json here: json.form_errors 
     } 
});