#php #json #html
#php #json #HTML
Вопрос:
У меня есть базовая таблица, которая считывает данные из файла json для заполнения строк, это заполнение обновляется сторонним приложением, и мне нужно будет автоматически добавлять новые строки, без необходимости просмотра обновлять страницу. В основном я ищу учебные пособия или что-то подобное о том, как это сделать. Заранее спасибо за любой совет!
$strJsonFileContents = file_get_contents("./includes/dispatch.json");
$mdt = json_decode($strJsonFileContents, true);
?>
<div id="callboard">
<div align="center">
Call ID: <input type="text" id="AlertId" class="mdt" size="10" readonly />
Type: <input type="text" id="AlertType" class="mdt" size="10" readonly />
Location: <input type="text" id="AlertLocation" class="mdt" size="25" readonly />
Status: <input type="text" id="AlertStatus" class="mdt" size="10" readonly />
Units: <input type="text" id="AlertUnits" class="mdt" size="20" readonly /><hr><span id='ct' ></span><hr>
</div>
<hr>
<h3>Active Calls</h3>
<table id="mdt-table">
<tr onclick="javascript:showRow(this);">
<th>Call ID</th>
<th>Type</th>
<th>Caller</th>
<th>Location</th>
<th>Details</th>
<th>Status</th>
<th colspan="2">Units</th>
<th>Other Info</th></tr>
<?php
$arrlength = count($mdt);
for ($x = 0; $x < $arrlength; $x )
{
if ($mdt[$x][AlertType]=='10-13')
{
echo "<tr class="blinking" onclick="javascript:showRow(this);">";
}
else { echo "<tr onclick="javascript:showRow(this);">";
}
echo "<td name="AlertId">". $mdt[$x][AlertID]; echo "</td>";
echo "<td name="AlertType">". $mdt[$x][AlertType]; echo "</td>";
echo "<td name="AlertCaller">". $mdt[$x][AlertCaller]; echo "</td>";
echo "<td name="AlertLocation">". $mdt[$x][AlertLocation]; echo "</td>";
echo "<td name="AlertMessage">". $mdt[$x][AlertMessage]; echo "</td>";
echo "<td name="AlertStatus">". $mdt[$x][AlertStatus]; echo "</td>";
echo "<td name="AlertUnits" colspan="2">". $mdt[$x][AlertUnits]; echo "</td>";
echo "<td name="AlertOther">". $mdt[$x][AlertOther]; echo "</td>";
echo "</tr>";
}
?>
</table>
Комментарии:
1. у кого-нибудь есть предложения?
2. Вы должны добавить код javascript (ajax) на свою страницу и получить данные и обновить таблицу с их помощью.
Ответ №1:
Когда вы получаете данные JSON, в частности строку, вы можете использовать функцию PHP json_decode($raw_json_string)
, которая вернет ассоциативный массив (если объект js) или просто обычный массив (массив js)
если вы хотите получить данные JSON для javascript, вы можете использовать функцию php
json_encode($array);
это вернет строку, готовую к использованию в Javascript в качестве объектной переменной.
итак, если вы хотите использовать объект JSON в PHP….
php:
`
$raw_json_string = {data: 2, data2:"hello world", data3:[1,2,3,4],};
$array = json_decode($raw_json_string);
$array['data'] == 2; // true
$array['data2'] == "hello world"; // true
$array['data3'] == [1,2,3,4]; // true`
затем вы можете использовать этот массив и перебирать его для создания строк вашей HTML-таблицы.
надеюсь, это поможет.
Комментарии:
1. Спасибо! Я уже это делаю. Мой вопрос в том, что когда удаленный источник добавляет новую запись в файл json, таблица html (php) автоматически обновляется новой строкой без какой-либо помощи пользователя.
2.ОК. какой бы HTML-код вы ни печатали
php
при загрузке страницы, это все, чтоphp
может сделать для вас, поскольку это серверная часть — в основном PHP печатает один раз. Вам нужно будет включить Javascript на страницу, чтобы динамически добавлять строки из данных, полученных с помощью AJAX. Jquery позволит вам добавить элемент в таблицу и упростит это вместо ванильного javascript. w3schools.com/jquery/jquery_dom_add.asp w3schools.com/js/js_htmldom_nodes.asp3. да, я понял эту часть. Ценю отзывы о jquery / ajax. Я углублюсь в это.