Я отправил данные json_encoded со страницы PHP:
$arrayForDataTablePopulation = array();
while (($row = oci_fetch_array($stid, OCI_BOTH)) != false) {
$a = trim($row["IDCONF"]);
$b = trim($row["NOME"]);
$c = trim($row["TIPOLOGIA"]);
$d = trim($row["STATO"]);
$e = trim($row["AMBIENTE"]);
$f = trim($row["AGGREGATORE"]);
$f2 = trim($row["NOMECED"]);
$g = trim($row["MODELLO"]);
$h = trim($row["CONTRATTO"]);
$i = trim($row["VALIDADAL"]);
$l = trim($row["VALIDAAL"]);
if ($count < $NUM){
$arrayForDataTablePopulation[$count] = "[" . $a . "," . $b . "," . $c . "," . $d . "," . $e . "," . $f . "," . $f2 . "," . $g . "," . $h . "," . $i . "," . $l . " ]";
$count++;
} else {
$arrayForDataTablePopulation[$count] = "[" . $a . "," . $b . "," . $c . "," . $d . "," . $e . "," . $f . "," . $f2 . "," . $g . "," . $h . "," . $i . "," . $l . " ]";
}
}
echo json_encode($arrayForDataTablePopulation);
} else {
echo "No data Received. Dimensione array: " . $receivedArrayFormSize;
}
Я не знаю, почему мой вывод плохо отображается:
Думаю, я плохо закодировал массив с сервера. Сторона Ajax:
$.ajax({
url: "asset_GestAsset.php",
type: "POST",
data: { "fieldValue" : JSON.stringify(arrForm) },
success: function(data) {
var tableData = JSON.parse(data);
console.info(" Converti in stringhe: " + data.toString() + " !!! Everything ok");
$('#OUTCOME_RESEARCH_TABLE').DataTable({
"aaData":tableData,
"deferLoading": 57,
"deferRender": true,
"scrollY": 150,
"iDisplayLength": 100,
"scrollX": true,
"bRetrieve": true,
"bDestroy": true,
"ordering": false,
"info": true,
"sDom": 'ltipr',
"bDestroy": true
});
etc...
Проблема в том, что меня сбивают с толку все эти массивы / JSON, я думаю, что сейчас у меня много путаницы в голове xD Кто-нибудь может помочь мне найти способ решения этой проблемы? Неправильная сторона PHP или код в AJAX?
Что я хотел бы сделать, так это изменить массив сервера, отправить обратно клиенту и правильно отобразить DataTable.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


PHP
Вы должны использовать приведенный ниже код для заполнения массива:
$arrayForDataTablePopulation[$count] = array($a, $b, $c, $d, $e, $f, $f2, $g, $h, $i, $l);
Чтобы распечатать JSON, используйте приведенный ниже код:
header('Content-type: application/json');
echo json_encode($arrayForDataTablePopulation);
JS
Используйте приведенный ниже код внутри обработчика success:
$('#OUTCOME_RESEARCH_TABLE').DataTable({
"dom": 'ltipr',
"data": data,
"pageLength": 100,
"scrollY": 150,
"scrollX": true,
"ordering": false
});
Спасибо, мужик! Я попробую и дам вам знать! ?