У меня есть данные в формате JSON Я вытягивать в:Лучший способ для отображения данных в формате JSON
{
"apiVersion": "0.1",
"data": {
"roomCount": 12,
"rooms": [
{
"roomNumber": "204",
"occupied": false,
"permissions": {
"roomCharges": true,
"adultContent": true
}
},
{
"roomNumber": "205",
"occupied": true,
"permissions": {
"roomCharges": false,
"adultContent": false
}
},
{
"roomNumber": "206",
"occupied": true,
"permissions": {
"roomCharges": false,
"adultContent": false
}
},
{
"roomNumber": "207",
"occupied": true,
"permissions": {
"roomCharges": false,
"adultContent": false
}
},
{
"roomNumber": "208",
"occupied": true,
"permissions": {
"roomCharges": false,
"adultContent": false
}
},
{
"roomNumber": "209",
"occupied": true,
"permissions": {
"roomCharges": false,
"adultContent": false
}
и я могу отформатировать его просто отлично. используя JSON_Decode
и затем показывая $output
в мой <table>
так:
<table>
<?php foreach($output['data']['rooms'] as $info): ?>
<tr>
<td><?php echo $info['roomNumber'] ?></td>
<td><?php echo ($info['occupied'] == 1) ? 'OCCUPIED' : 'VACANT'; ?></td>
<td><?php echo ($info['permissions']['roomCharges'] == 1) ? 'ENABLED' : 'DISABLED'; ?></td>
<td><?php echo ($info['permissions']['adultContent'] == 1) ? 'ENABLED' : 'DISABLED'; ?></td>
<td><?php echo '<a class="clickhere" href="display_room_report.php?id=' . $info['roomNumber'] .'">Click Here</a>'?></td>
</tr>
<?php endforeach; ?>
</table>
Но моя проблема в том, что у меня есть несколько страниц PHP с помощью этой же таблицы, я хотел бы создать динамический способ установить переменные, и затем вызывать эти переменные в нескольких местах. Моя цель - отредактировать параметры JSON в одном месте и обновить все страницы php, а не обновлять каждый key=>value
на нескольких страницах php. (что-то вроде этого, чтобы установить каждую переменную).
<?php foreach($output['data']['rooms'] as $info){
$roomNumber = $info['roomNumber'];
$occupied = ($info['occupied'] == 1) ? 'OCCUPIED' : 'VACANT';
$roomCharges = ($info['permissions']['roomCharges'] == 1) ? 'ENABLED' : 'DISABLED';
$adultContent = ($info['permissions']['adultContent'] == 1) ? 'ENABLED' : 'DISABLED';
$roomReport = '<a class="clickhere" href="display_room_report.php?id=' . $info['roomNumber'] .'">Click Here</a>';
}
?>
И в моей таблице отображения:
<tr>
<td><?php echo $roomNumber ?></td>
<td><?php echo $occupied ?></td>
<td><?php echo $roomCharges ?></td>
<td><?php echo $adultContent ?></td>
<td><?php echo $roomReport ?></td>
</tr>
делает его немного более динамичным. Поэтому в случае изменения ключа и значений JSON я могу изменить их в одном месте, то есть ['permissions']['adultContent']
может превратиться в ['guestValue']['RoomAuthorized']
. Я мог бы внести изменения в одно место, и остальные страницы будут автоматически обновляться.
Проблемы я бег в, является то, что в то время как у меня есть это пол-работа с variables
, подключенной к <td>
, например, так:
<tr>
<td><?php echo $roomNumber ?></td>
<td><?php echo $occupied ?></td>
<td><?php echo $roomCharges ?></td>
<td><?php echo $adultContent ?></td>
<td><?php echo $roomReport ?></td>
</tr>
Я получаю тот же ключ и значение для каждой строки пункт. Пример:
204 VACANT ENABLED ENABLED Click Here
204 VACANT ENABLED ENABLED Click Here
204 VACANT ENABLED ENABLED Click Here
204 VACANT ENABLED ENABLED Click Here
204 VACANT ENABLED ENABLED Click Here
Когда оригинал table
я использую, возвращает данные правильно, например, так:
table>
<?php foreach($output['data']['rooms'] as $info): ?>
<tr>
<td><?php echo $info['roomNumber'] ?></td>
<td><?php echo ($info['occupied'] == 1) ? 'OCCUPIED' : 'VACANT'; ?></td>
<td><?php echo ($info['permissions']['roomCharges'] == 1) ? 'ENABLED' : 'DISABLED'; ?></td>
<td><?php echo ($info['permissions']['adultContent'] == 1) ? 'ENABLED' : 'DISABLED'; ?></td>
<td><?php echo '<a class="clickhere" href="display_room_report.php?id=' . $info['roomNumber'] .'">Click Here</a>'?></td>
</tr>
<?php endforeach; ?>
</table>
И возвращает:
204 VACANT ENABLED ENABLED Click Here
205 OCCUPIED DISABLED DISABLED Click Here
206 OCCUPIED DISABLED DISABLED Click Here
207 OCCUPIED DISABLED DISABLED Click Here
208 OCCUPIED DISABLED DISABLED Click Here
У вас есть какие-либо идеи о том, как Я могу сделать это более динамичным? Спасибо, что просмотрел мой вопрос. Пожалуйста, дайте мне знать, если вам нужно что-нибудь еще, чтобы помочь мне. Я попытался объяснить это ясно, дайте мне знать, если вам нужно что-нибудь еще.
Ваша проблема в том, что переменные ('$ roomNumber, $ occupied' и т.д.) перезаписываются в вашем начальном цикле Еогеасп, чтобы они в конечном итоге проведение значения из последней итерации. Решение, вероятно, простое, но вам нужно подробно рассказать о том, как вы получаете доступ к этим данным на нескольких страницах. Ответ может быть таким же простым, как заявление phps 'include' – Steve
Я пробовал это до и зашел за него. Это намного легче понять, если вы заработаете 30 секунд, чтобы прочитать его. – ValleyDigital
@Steve ах, я вижу ... Да, вы правы. Я хотел бы создать страницу «data.php» и включить его в каждый скрипт, который мне нужен, например include 'data.php'; – ValleyDigital