Ajax Async и Cyclic PHP запрос из функции JavaScript - PullRequest
0 голосов
/ 19 декабря 2018

тупой вопрос.У меня есть две страницы, " 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;
?>

Любая помощь?

1 Ответ

0 голосов
/ 19 декабря 2018

С учетом проблем с синтаксисом PHP, упомянутых в первом вышеупомянутом комментарии, также есть проблемы с javascript: } после func.php неуместен и должен быть помещен в конце функции обратного вызова ajax,Нет необходимости иметь setInterval() в функции req(), потому что это выполняется при вызове функции.Перед определением функции req() также отсутствует function.

Для достижения этой цели вам потребуется использовать сеансы 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'];

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...