#tabulator
#табулятор
Вопрос:
Я новичок в программировании и табуляторе. У меня есть страница PHP, на которой отображается мой результат JSON. Я просто хочу просмотреть этот результат в таблице табулятора на другой странице.
Результат JSON отформатирован следующим образом, он находится на странице под названиемproxystatus.php.
{ "0": {
"hostid": "10610",
"proxy_hostid": "10609",
"host": "PIDMPRX-DEV",
"status": "0",
"disable_until": "0",
"error": "",
"available": "1",
"errors_from": "0",
"lastaccess": "0",
"ipmi_authtype": "-1",
"ipmi_privilege": "2",
"ipmi_username": "",
"ipmi_password": "",
"ipmi_disable_until": "0",
"ipmi_available": "0",
"snmp_disable_until": "0",
"snmp_available": "1",
"maintenanceid": "0",
"maintenance_status": "0",
"maintenance_type": "0",
"maintenance_from": "0",
"ipmi_errors_from": "0",
"snmp_errors_from": "0",
"ipmi_error": "",
"snmp_error": "",
"jmx_disable_until": "0",
"jmx_available": "0",
"jmx_errors_from": "0",
"jmx_error": "",
"name": "0955-PIDM-PRX",
"flags": "0",
"templateid": "0",
"description": "0955 Company Name",
"tls_connect": "1",
"tls_accept": "1",
"tls_issuer": "",
"tls_subject": "",
"tls_psk_identity": "",
"tls_psk": "",
"proxy_address": "",
"auto_compress": "1"
}}
Мой код таблицы табулятора выглядит следующим образом, он находится на странице под названиемdash.php
var table = new Tabulator("#proxyStatus", {
height:"100%",
layout:"fitColumns",
placeholder:"Gathering Proxy Status...",
data:'<?=$proxyStatus?>',
columns:[
{title:"Status", field:"status", sorter:"string", width:200},
{title:"Available", field:"available", sorter:"number", formatter:"progress"},
{title:"Last Access", field:"lastaccess", sorter:"string"},
{title:"Name", field:"name", formatter:"star", align:"center", width:100},
{title:"Maintenance Status", field:"maintenance_status", sorter:"string", sortable:false},
{title:"Maintenance Type", field:"maintenance_type", sorter:"date", align:"center"},
{title:"Maintenance ID", field:"maintenanceid", align:"center", formatter:"tickCross", sorter:"boolean"},
],
});
Ответ №1:
Вы должны добавить все столбцы в массив columns или просто использовать autoColumns:true в конструкторе, как упоминалось здесь, я создал этот Jsfiddle для вашего понимания
const table = new Tabulator("#example-table", {
height: 205, // set height of table (in CSS or here), this enables the Virtual DOM and improves render speed dramatically (can be any valid css height value)
data: tabledata1, //assign data to table
layout: "fitData", //fit columns to width of table (optional)
autoColumns: true,
});
Комментарии:
1. Большое вам спасибо за ответ. Я попробовал ваш код и все еще получаю ошибку. Не могли бы вы кратко объяснить, как получить доступ к данным JSON с другой страницы? В настоящее время я просто использую <?=VARIABLENAME?> однако, чтобы перенести значения на другую страницу, это просто отображается как «Массив», если я попытаюсь распечатать массив, чтобы он отображался, однако он не использует его в качестве табличных данных?
2. Другими словами, мой источник данных поступает с другой страницы, которая создает ответ json из api. Мне нужно, чтобы это был мой источник данных. Извините за мое невежество, я изучаю это на лету. 🙂
3. Вот моя страница php, которая получает ответ JSON. Я думаю, что это где моя ошибка»‘ <?php //include «pulse.php»; $proxyStatus = json_readable_encode ( pulseProxyStatus ( $uri, $authtoken ) ); $page = $_SERVER[‘PHP_SELF’]; $sec = «10»; header(«Refresh: $sec; url=$page»); ?> <script> const tableData = new Tabulator(«#proxyStatus», { data: <?=$proxyStatus?>, //assign data to table layout: «fitData», //fit columns to width of table (optional) autoColumns: true, </script>
4. Насколько я знаю, PHP работает на сервере, Javascript работает на клиенте (браузере), вам нужно отправить данные из PHP в Javascript как вызов Rest API, а затем запустить код