Answer the question
In order to leave comments, you need to log in
How to display data from MongoDB in BootstrapTable, first correctly rebuild the array in PHP?
I don’t understand how to correctly configure the array in the handler.php handler , bring it to this form - test BootstrapTable . With it the table works correctly.
Array TEST - the table works with it.
Data selection from the MongoDB database is carried out by the handler (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();
}
}
<div class="content">
<div class="fresh-table full-color-red">
<div class="toolbar"></div>
<table id="host_table" class="table"></table>
</div>
</div>
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();
}
}
Answer the question
In order to leave comments, you need to log in
For some reason, it only worked with a GET request, I corrected it a little more ...
if ($_GET['data_rdphost'] == 1) {
try { // подключаемся к MongoDB
$mongo = new MongoDB\Client('mongodb://' . MONGO_HOST . ':' . MONGO_PORT); // без авторизации
$collection = $mongo -> mydatabase -> rdp_host; // выбираем коллекцию
$cursor = $collection -> find([], array('ip', 'port')); // возвращаемый курсор с заданными значениями
$arr = []; // инициализируем массив
$k = 1; // начальный id
// вносим в массив данные
foreach ($cursor as $document) {
array_push($arr, array(
'id' => $k,
'ip' => $document['ip'],
'port' => $document['port']
)
);
$k++;
}
// сращиваем массивы
$array = array( 'rows' => $arr );
// кодируем ответ
echo json_encode($array);
} catch ( Exception $e ) {
echo '<p>Невозможно подключиться к MongoDB. Проверьте работоспособность кода и процесса MongoDB.</p>';
exit();
}
}
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question