DataTable с источником JS

Я пытаюсь сгенерировать некоторые данные с помощью Sage Sdata, используя javascript, и после этого обработать эти данные с помощью плагина datatables, но получаю ошибку:

Предупреждение DataTables: таблица id= пример - запрошенный неизвестный параметр '1' для строки 0. Для получения дополнительной информации об этой ошибке, пожалуйста, см. http://datatables.net/tn/4

if(aNode2)
{
    resultTextData += '[';
    resultTextData += "'" + aNode1.nodeValue + "'";
    resultTextData += ',';
    resultTextData += "'" +  aNode2.nodeValue + "'";
    resultTextData += ',';
    resultTextData += "'" + aNode3.nodeValue + "'";
    resultTextData += ']';
    resultTextData += ',';
}

var dataSet =   resultTextData ;

console.log(dataSet);

$('#example').dataTable({
    "data": dataSet,
    "aoColumns": [
        { "aDataSort": [ 0, 1 ] },
        { "aDataSort": [ 1, 0 ] },
        { "aDataSort": [ 2, 3 ] }
    ]

});

2 ответа

data опция не принимает строковые данные. См. https://datatables.net/reference/option/data

DataTables поддерживают загрузку из строки в кодировке json. Вот пример преобразования XML-результата в массив.

function FormatDataByIolist($data,$IOlist) {
    $returnAray = array();
    $RecordCount = count($data);
    for($i = 0; $i < $RecordCount; $i++) { 
        $tmpSingleRow = array();
        foreach($IOlist as $colName) {
            $columVal = (string)$data[$i]->$colName;
            $tmpSingleRow[$colName] = $columVal;
        }
        array_push($returnAray,$tmpSingleRow);
        unset($tmpSingleRow);
    }
    return $returnAray;
}

После этого вам нужно преобразовать массив в строку json_encoded, которую может понять DataTable.

$formatted = '{ "data": '.json_encode($returnAray).'}';

После написания этого в бэкэнде вам нужно добавить следующую строку в ваше определение данных

"ajax": "your.php?action=getJson"

your.php?action=getJson Метод должен быть GET и должен возвращать отформатированную строку json (как показано).

Я думаю, этот репозиторий поможет вам работать с SData. (Это модель для работы с SData) https://github.com/AramKocharyan/Sage-SData

Другие вопросы по тегам