Обновить страницу с различными данными без обновления браузера - PullRequest
0 голосов
/ 31 октября 2019

Здравствуйте, я делаю проект, мне нужно обновлять данные каждые 10 секунд, я уже создал отдельный файл для загрузки одной информации, и это сработало, но мой вопрос, у меня есть данные 3 датчиков в моей базе данных, Нужно ли мне создавать 3 разных файла обновления для загрузки всех данных на мою главную страницу?

Это один из моих файлов данных:

<?php 

  session_start();

  include_once 'includes/dbh.inc.php';

  $id = $_SESSION['userId']; 

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

  $sql = "SELECT * FROM `$id` ORDER BY id DESC LIMIT 1;";
  $result = mysqli_query($conn, $sql);
  $resultCheck = mysqli_num_rows($result);

  if($resultCheck > 0)
  {
    while ($row = mysqli_fetch_assoc($result))
    {
      $ss1 = intval($row['sensor1'] * ($p = pow(10, 2))) / $p;
      echo "".$ss1."A";
      $s1 = $row['sensor1'];
    }
  }
?>

это мой файл обновления:

<script type="text/javascript" src="jquery-3.4.1.min.js"></script>
    <script type="text/javascript">
      $(document).ready(function (){
        setInterval(function () {
          $('#p0-blocoCorrente').load('load.php')
        }, 5000);
      });
    </script>

вот как я это озвучиваю:

<div class="blocoCorrente" id = "blocoCorrente">
      <!-- Imprimir os valore dos sensor 1 -->
      <div class="p0-blocoshow">Corrente 1:</div>
      <div class="p0-blocoCorrente" id ="p0-blocoCorrente"></div>
</div>

ОБНОВЛЕНИЕ:

 session_start();

  include_once 'includes/dbh.inc.php';

  $id = $_SESSION['userId']; 
  $sensor = isset($_POST['sensor']) ? "sensor" . intval($_POST['sensor']) : "sensor1";
  $dBname = "infosensor";
  $conn = mysqli_connect($servername, $dBUsername, $dBPassword, $dBname);

  $sql = "SELECT $sensor FROM `$id` ORDER BY id DESC LIMIT 1;";
  $result = mysqli_query($conn, $sql);
  $row = mysqli_fetch_assoc($result);
  if($row)
  {

    $s1 = $row[$sensor];
    $ss1 = intval($s1 * ($p = pow(10, 2))) / $p;
    echo $ss1;
  }

  $sensor1 = isset($_POST['sensor']) ? "sensor" . intval($_POST['sensor']) : "sensor2";

  $sql = "SELECT $sensor1 FROM `$id` ORDER BY id DESC LIMIT 1;";
  $result = mysqli_query($conn, $sql);
  $row = mysqli_fetch_assoc($result);
  if($row)
  {

    $s2 = $row[$sensor1];
    $ss2 = intval($s1 * ($p = pow(10, 2))) / $p;
    echo $ss2;
  }

1 Ответ

0 голосов
/ 31 октября 2019

Заставьте PHP-скрипт вернуть все датчики в объекте JSON. Затем вы можете отобразить каждый из них в соответствующем DIV.

session_start();

include_once 'includes/dbh.inc.php';

$id = $_SESSION['userId']; 
$dBname = "infosensor";
$conn = mysqli_connect($servername, $dBUsername, $dBPassword, $dBname);

$sql = "SELECT sensor1, sensor2, sensor3 FROM `$id` ORDER BY id DESC LIMIT 1;";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
$sensors = array();
if($row)
{
    for ($i = 1; $i <= 3; $i++) {
        $s1 = $row["sensor$i"];
        $ss1 = intval($s1 * ($p = pow(10, 2))) / $p;
        $sensors["sensor$i"] = $ss1 . "A";
    }
    echo json_encode($sensors);
} else {
    echo json_encode(null);
}

Затем измените JavaScript для использования $.getJSON().

$(document).ready(function (){
    setInterval(function () {
      $.getJSON('load.php', function(sensors) {
        if (sensors) {
            $('#p0-blocoCorrente').text(sensors.sensor1);
            $('#p1-blocoCorrente').text(sensors.sensor2);
            $('#p2-blocoCorrente').text(sensors.sensor3);
        }
      });
    }, 5000);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...