Обновляйте содержимое PHP каждые 5 секунд, используя Ajax или Jquery - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь ОБНОВИТЬ мою php страницу каждые 5 секунд, чтобы новые данные могли войти в файл. json, поэтому в основном он получает данные из базы данных и создает a. json файл с этими данными, мне нужно, чтобы этот php файл обновлялся каждые 5 секунд, поэтому файл. json также обновляется.
Код (JsonfileAPI. php):

<!DOCTYPE html>
<html lang="pt-br">
<head>
</head>
<body>
<?php
    function get_data()
    {
        $servername = "nps";
        $dBUsername = "nps";
        $dBPassword = "nps";
        $dBname = "nps";

        $conn = mysqli_connect($servername, $dBUsername, $dBPassword, 
        $dBname);

        if ($conn->connect_error){
        die ("Connection failed". $conn->connect_error);
        }

        $sql = "SELECT * FROM dados;";
        $result = mysqli_query($conn, $sql);
        $json_array = array();
        while($row = mysqli_fetch_assoc($result))
        {
            $json_array[] = array(
                'AutoIncrement'         =>       $row["AutoIncrement"],
                'Aparelho'         =>       $row["aparelho"],
                'Status'         =>       $row["Status"],
            );
        }
        return json_encode($json_array);
    }
    $file_name = 'dadosjson' . '.json';

    if (file_put_contents($file_name, get_data()))
    {
        echo $file_name. ' file created';
    }
    else 
    {
        echo 'There is some error';
    }
?>
<script>
$(document).ready(function () {
setInterval(function(){
    $.ajax({
        url: "JsonfileAPI.php",
        type: 'post',
        dataType: 'json',
        success: function(response) {
            $('.time').html(response);
        }
    });
    }, 5000);
});
</script>

1 Ответ

1 голос
/ 30 апреля 2020

Вы можете использовать этот код в своем приложении, я предлагаю использовать отдельные файлы, такие как index. php (для вашего html кода) и action. php для PHP сценария. и не нужно. json файл.

Попробуйте, в индексе. php html часть и javascript часть, как это

 $(document).ready(function () {
     setInterval(function(){
            $.ajax({
                url: "action.php",
                type: 'post',
              //  dataType: 'json',
                success: function(response) {
                   console.log(response);
                  $('.time').html(response);
              }
            });
        }, 5000);
      });
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>

    <div class="time">
    </div>
    </body>
</html>

Тогда ваш файл действий. php должен быть таким,

  <?php
    $localhost = "nps";
    $username = "nps";
    $password = "nps";
    $dbname = "nps";

    // db connection
    $connect = new mysqli($localhost, $username, $password, $dbname);
    // check connection
    if ($connect->connect_error) {
      die("Connection Failed : " . $connect->connect_error);
    } else {
     //  echo "Successfully connected".$dbname;
    }

    $sql = "SELECT * FROM dados";
    $result = $connect->query($sql);

    $output = array('data' => array());

    if ($result->num_rows > 0) {
      while ($row = $result->fetch_array()) {
      $output['data'][] = array(
      $row[0],
      $row[1],
      $row[2]
     );
    }
   }
   $connect->close();

   echo json_encode($output);

Я проверил, и он работает нормально. Думаю, это поможет.

...