Передача переменных из PHP к JS способом слабоумного
Пытаюсь передать переменные php в js чтобы он в свою очередь вывел их на html. Есть три файла index.php updateCounter.php и main.js. Файл updateCounter.php содержит такой код
<?php
// Infected ================================================
$filename = 'infected';
$handle = fopen($filename, 'rb');
$content = fread($handle, filesize($filename));
fclose($handle);
$content += 1;
$infected = $content; // Сохраняю новое значение в переменную
file_put_contents($filename, $content);
// Deaths ==================================================
$filename = 'deaths';
$handle = fopen($filename, 'rb');
$content = fread($handle, filesize($filename));
fclose($handle);
$content += 2;
$deaths = $content; // Сохраняю новое значение в переменную
file_put_contents($filename, $content);
// Damage ===================================================
$filename = 'damage';
$handle = fopen($filename, 'rb');
$content = fread($handle, filesize($filename));
fclose($handle);
$content += 7756;
$damage = $content; // Сохраняю новое значение в переменную
file_put_contents($filename, $content);
?>
Здесь я беру значения из трех файлов, прибавляю к этому значение какое то число, потом сохраняю новое значение в переменную и так же это новое значение записываю в файл при этом удаляя старое содержимое файла(перезапись). Файл updateCounter.php стоит как Cron задача и выполняется каждый 1 час. (иначе бы я записал все прямо в html)
Мне нужно передать переменные $infected $deaths $damage в js чтобы он вывел их в соответствующие теги. Я думал передать из php в html используя data, потом методом dataset из js обратно передать их в html, но уже в другие теги. Помогите пожалуйста с реализацией. Гуглил ничего не нашел
Ответы (1 шт):
$a = json_decode(file_get_contents("filename.json"), true);
$a['infected'] = 45;
$a['damage'] = 12;
$a['deaths'] = 45;
file_put_contents("filename.json", json_encode($a));
Читаеться со стороны JS через обычный FetchAPI:
fetch("/my.json")
.then(response => {
if(!response.ok) throw new Error('response.ok false')
return response.json()
})
.then(data => {
document.getElementById('deaths').innerHTML = data.deaths;
document.getElementById('kills').innerHTML = data.kills;
document.getElementById('infects').innerHTML = data.infects;
})