2017-01-12 1 views
-1

Я выполняю эту статьюDatatable процесс сложный ответ от сервера

https://datatables.net/examples/data_sources/server_side.html

У меня есть ответ от сервера, который я не могу изменить, сейчас я хочу показать, что данные в таблице данных.

Я попытался DATASRC

https://datatables.net/reference/option/ajax.dataSrc

Но до сих пор не в состоянии показать данные и рассчитывать. Формат Ответ:

{ 
    "status":"success", 
    "message":{ 
     "draw": 1, 
     "recordsTotal": 57, 
     "recordsFiltered": 57, 
     "data":[["data1","test","22-05-2016"],["new enrty" 
,"newtag,extra","08-01-2017"],["test","kundan","08-01-2017"],["Ram","kundan","08-01-2017"]["ASDA","ASDAS","11-01-2017"],["ASDASD","ASDAS","11-01-2017"]] 
     }} 

Теперь я не могу показать его в DataTable.

+0

1) это не очень сложно 2) Вы пытались решить это самостоятельно? 3) Что такое datatable? – Liam

+0

Какая часть должна отображаться в таблице 'message.data'? Другие свойства выглядят статичными. Просто замените это. – Searching

+0

@ Поиск Если вы проверите первую ссылку, вы увидите, что, кроме данных, нам нужны и другие данные, такие как draw, recordsTotal .. – Confused

ответ

1

Вы были рядом с dataSrc. Учитывая, что ваши данные, как вы описали, то это должно работать:

var jsonData = { 
    "status": "success", 
    "message": { 
     "draw": 1, 
     "recordsTotal": 57, 
     "recordsFiltered": 57, 
     "data": [ 
      ["data1", "test", "22-05-2016"], 
      ["new enrty", "newtag,extra", "08-01-2017"], 
      ["test", "kundan", "08-01-2017"], 
      ["Ram", "kundan", "08-01-2017"], 
      ["ASDA", "ASDAS", "11-01-2017"], 
      ["ASDASD", "ASDAS", "11-01-2017"] 
     ] 
    } 
}; 

$(function() { 
    var example = $("#example").DataTable({ 
     //"processing": true, 
     "serverSide": true, 
     "ajax": { 
      "type": 'POST', 
      "dataType": 'json', 
      "url": '/echo/json/', 
      "data": { 
       "json": JSON.stringify(jsonData) 
      }, 
      "dataFilter": function(data) { 
       var json = jQuery.parseJSON(data); 
       return JSON.stringify(json.message); 
      } 
     }, 
     columns: [{ 
      "title": "Column 1" 
     }, { 
      "title": "Column 2" 
     }, { 
      "title": "Column 3" 
     }] 
    }); 
}); 

Однако ваши данные выглядит как на стороне сервера, призыв к чему-то, что знает, как работает DataTables ... например, это имеет recordsTotal и recordsFiltered. Возможно, вы уже разговариваете с серверной стороной, которая знает, как бороться с DataTables?

Как в стороне, вам не хватало запятой в ваших исходных данных. Рабочий JSFiddle here. Надеюсь, это поможет.

EDIT После уточнения и некоторой дополнительной настройки это берет сообщение как данные. Использует обратный вызов jQuery ajax dataFilter. Ответ и JSFiddle обновлены.

+0

Спасибо за повтор .. Это то, что я уже пробовал. Единственная проблема с этим в том, что я не могу использовать «draw», «recordsTotal» и т. Д., Которые необходимы для разбивки на страницы .. и показывает количество ... – Confused

+0

Нет проблем, теперь я понимаю вашу проблему. Проверьте обновленный ответ, он должен делать то, что вам нужно. :-) – annoyingmouse

+0

Большое спасибо за ваши замечательные усилия .. используя dataFilter исправил его :-) – Confused