Этот проект, над которым я работаю, включает некоторую работу в отеле, где я подключаюсь к серверу и получаю ответ JSON. Я использую JSON_Decode
как таковой, $output = json_decode($data, true);
Отображение информации из файла JSON
И данные в формате JSON, что я работаю с выглядит следующим образом:
{
"apiVersion": "0.1",
"data": {
"roomCount": 105,
"rooms": [{
"room_number": "104",
"services": [{
"adult": {
"enabled": false
},
"room_charges": {
"enabled": false
}
}],
"status": "OCCUPIED"
}, {
"room_number": "105",
"services": [{
"adult": {
"enabled": true
},
"room_charges": {
"enabled": false
}
}],
"status": "OCCUPIED"
}
Я создал форму для пользователя, чтобы ввести номер комнаты, а затем я использую GET
способ принять номер номера на другую страницу display_room_report.php
. См. Форму, которую я создал ниже.
<div id="form1">
<form action="display_room_report.php" method="GET" name="reporting" id="reporting"><br />
<label for="single_room">Enter Room Number</label>
<input type="text" name="id" id="single_room" size="20" required><br><br>
<input style="margin-top: 20px" type="submit" name="submit" id="submit" value="Submit">
</form>
</div>
В форме я использую id
как ввести номер комнаты, я хотел, чтобы отобразить остальную информацию, соответствующую этот номер комнаты от данных JSON, на новой странице, display_room_report.php
. Я пробовал кодировать это, но я не могу заставить его работать. Я редко использую JSON, поэтому я не уверен, правильно ли я делаю это? Я захватывая в номере комнаты следующим образом:
<?php
if(isset($_GET['id'])){
$id = $_GET['id'];
}
То, что я хотел бы сделать это за номер комнаты, который передается через, вывод, что параметры числа номеров, такие как adult: enabled or disabled
и room charges: enabled or disabled
. Я подключаюсь к серверу, чтобы получить ответ JSON выглядит следующим образом:
try {
$message = "api\tjson\tget\trooms\n";
$handle = fsockopen("192.xxx.xx.xx", 5678);
fwrite($handle, $message);
}
catch (Exception $e) {
echo 'ERRORS: We are unable to connect to the server', $e->getMessage(), "\n";
};
if ($handle == TRUE) {
$data = '';
while (!feof($handle)) {
$data .= fread($handle, 8192);
}
fclose($handle);
$output = json_decode($data, true);
я могу захватить весь перечень информации из данных JSON следующим образом:
<?php foreach($output['data']['rooms'] as $info): ?>
<tr>
<td><?php echo $info['room_number']; ?></td>
<?php $services = reset($info['services']); ?>
<td><?php echo ($services['room_charges']['enabled'] == 1) ? 'ENABLED' : 'DISABLED'; ?></td>
<td><?php echo ($services['adult']['enabled'] == 1) ? 'ENABLED' : 'DISABLED'; ?></td>
<td><?php echo $info['status']; ?></td>
</tr>
</body>
<?php endforeach; ?>
Однако, мне нужно, чтобы захватить конкретный номер id
room_number, затем выводят соответствующие данные номера номера. Если пользователь входит в комнату 104, я хотел бы только отображать информацию для комнаты 104, на странице display_room_report.php
Большое спасибо за проверку этого. Я пытался понять, что я делаю, если вам нужны дополнительные объяснения, пожалуйста, спросите.
Спасибо @Jacob! Я должен был это увидеть сам, но я ожидал, что это будет более сложным, чем это. Это будет работать и сейчас, я также ценю ваш совет по API. – ValleyDigital