Итак, у меня есть код javascript, который кто-то дал мне, который обновляет часть страницы, и он работает, обновляя переменную с присвоенным ей случайным числом. но когда я пытаюсь обновить в нем PHP-код, он запускается только один раз. Почему это? Как я могу решить эту проблему?
//other working php code
if (isset($_POST['hostgame']))
{
//do some stuff
print"<div id='target'> </div>";
}
<script >
setInterval(function refresh(){
// why isn't this refreshing? math.random is?
<?php
$query = "select * from gameStatus".$_SESSION['gamenumber'];
$result = mysqli_query($link, $query);
while($row = mysqli_fetch_row($result))
{
list($id, $status) = $row;
}
$gameStatus=$status;
?>
var value = "<?php echo $gameStatus; ?>"+Math.round(Math.random()*100);
$('#target').addClass('hidden');
$('#target').html(value);
$('#target').removeClass('hidden');} , 1500);
</script>
</body>
</html>
поэтому статус игры распечатывается в первый раз, но не обновляется, чтобы показать последние изменения в mysql. Я проверил базу данных, она меняется, но не отображается на экране. хотя случайное число освежает. Может кто-нибудь объяснить почему? может как исправить?
Почему у вас есть php-код без тегов <? Php и?>?
Код PHP запускается только один раз, прежде чем страница будет передана клиенту.
К сожалению, вы не можете использовать php в таком javascript. Загляните в AJAX w3schools.com/xml/ajax_intro.asp



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если вы хотите, чтобы он обновлялся после того, как страница была «обслужена», это потому, что PHP сделал это, он обслужил страницу, единственный способ заставить PHP «обновить» - это принудительно перезагрузить все страница (AJAX также является вариантом, но это единственный способ сделать это на странице), то есть запросить его с сервера, это потому, что JS является клиентской стороной (влияет после загрузки), а PHP - стороной сервера (запускается перед страницей загружается / отображается)