Дурацкий вопрос. У меня есть две страницы «Index.html» а также «func.php«в том же каталоге.
Я пытаюсь вызывать страницу PHP каждые 2 секунды, получить ее ECHO и отобразить на параграф элемент.
Нет ошибки, но параграф текст просто не изменится (и останется 0), вот код:
Index.html
<html>
<body>
<?php
int cont = 0;
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js" type="text/javascript"></script>
<script>
req()
{
$.ajax({url: "func.php"}, success: function(data) {
document.getElementById("p1").innerHTML = data;
});
setInterval(req(), 2000);
};
$('document').ready(function(){
setInterval(req(), 2000);
});
</script>
<p id="p1">0</p>
</body>
func.php
<?php
cont++;
echo cont;
?>
Любая помощь?
С учетом проблем синтаксиса PHP, упомянутых в первом вышеупомянутом комментарии, также есть проблемы с javascript: }
после func.php
находится не на своем месте и должен и должен быть помещен в конец функции обратного вызова ajax. Там нет необходимости иметь setInterval()
в req()
функция, потому что это обслуживается, когда функция вызывается. Также отсутствует function
до определения req()
функция.
Для достижения этой цели вам нужно будет использовать сеансы PHP, как упомянуто во втором комментарии. На самом деле вам не нужен код PHP в файле index.html. Вот возможное решение:
index.html:
<html>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js" type="text/javascript"></script>
<script>
function req()
{
$.ajax({url: "func.php", success: function(data) {
document.getElementById("p1").innerHTML = data;
}});
};
$('document').ready(function(){
setInterval(function(){req();}, 2000);
});
</script>
<p id="p1">0</p>
</body>
</html>
func.php:
<?php session_start();
if(!isset($_SESSION['cont'])){
$_SESSION['cont'] = 0;}
else
{$_SESSION['cont'] += 1; }
echo $_SESSION['cont'];
?>
Других решений пока нет …