Не пойму как в обработчике
handler.php правильно сконфигурировать массив, привести его к такому виду -
тестовый BootstrapTable. С ним таблица работает правильно.
Массив ТЕСТОВЫЙ - с ним таблица работает.
Выборка данных из
БД MongoDB осуществляется обработчиком (PHP) -
handler.php:
if ($_POST['data_host'] == 1) {
try { // подключаемся к MongoDB
$mongo = new MongoDB\Client('mongodb://localhost:27017');
$collection = $mongo->mydatabase->customers; // выбираем коллекцию
$array = [];
$cursor = $collection->find([], array('_id', 'ip', 'port')); // возвращаемый курсор с заданными значениями
$k=0;
foreach ($cursor as $document) {
$array[$k] = array(
'rows' => array(
'id' => $k,
'ip' => $document['ip'],
'port' => $document['port']
));
//printf("%s: %s, %s\n", $k, $document['ip'], $document['port']);
$k++;
}
// отправляем назад данные
echo json_encode( $new );
} catch ( Exception $e ) {
echo '<p>Невозможно подключиться к MongoDB.</p>';
exit();
}
}
В итоге формируется массив, с которым не работает таблица.
НЕРАБОЧИЙ ВАРИАНТ - с ним таблица не работает.
table.html
<div class="content">
<div class="fresh-table full-color-red">
<div class="toolbar"></div>
<table id="host_table" class="table"></table>
</div>
</div>
table.js
if (document.getElementById('host_table')) {
// инициализируем таблицу
$table = $('#host_table');
$(function () {
$table.bootstrapTable('destroy').bootstrapTable({
method: 'post',
url: HANDLER_URL + '?data_host=1',
classes: 'table table-hover table-striped',
toolbar: '.toolbar',
search: true,
pagination: true,
striped: true,
sortable: true,
pageSize: 9,
columns: [
{ field: 'id', title: 'ID', align: 'left', visible: true },
{ field: 'ip', title: 'IP', align: 'left', visible: true },
{ field: 'port', title: 'Port', align: 'left', visible: true }
],
formatShowingRows: function (pageFrom, pageTo, totalRows) {
return 'Showing ' + pageFrom + ' to ' + pageTo + ' of ' + totalRows + ' RDP host';
}
})
})
}
-- ПРАВКИ --
Поправил логику "пересборки" массива, доведя до эталонного (тестового) на выходе:
// получаем данные таблицы
if ($_POST['data_rdphost'] == 1) {
try { // подключаемся к MongoDB
$mongo = new MongoDB\Client('mongodb://localhost:27017'); // без авторизации
$collection = $mongo->mydatabase->customers; // выбираем коллекцию
$cursor = $collection->find([], array('ip', 'port')); // возвращаемый курсор с заданными значениями
$arr = []; // инициализируем массив
$k = 0; // начальный id
// вносим в массив данные
foreach ($cursor as $document) {
array_push($arr, array(
'id' => $k,
'ip' => $document['ip'],
'port' => $document['port']
)
);
$k++;
}
// сращиваем массивы
$array = array(
'total' => 100,
'totalNotFiltered' => 100,
'rows' => $arr
);
// кодируем ответ
echo json_encode($array);
} catch ( Exception $e ) {
echo '<p>Невозможно подключиться к MongoDB. Проверьте работоспособность кода и процесса MongoDB.</p>';
exit();
}
}
Но таблица по прежнему не работает. Друзья, нужна ваша помощь.