Refre sh страница, если есть изменения в базе данных - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь обновить sh моей страницы, если есть изменение в orderStatus из базы данных с использованием Ajax и PHP. Я устанавливаю текущий orderStatus как предопределенные данные, а затем использую Ajax, чтобы получить текущий orderStatus из базы данных и, наконец, сравнить, если они не совпадают. Я хочу обновить страницу sh, если они не совпадают.

PHP (autorefre sh. php)

<?php

$orderId = $_POST["orderId"];

$query = "SELECT * FROM orderinhomeonlinecall WHERE orderId='$orderId'";
$result = mysqli_query($db, $query);

  while($row = mysqli_fetch_array($result))
  {
      $orderStatus = $row['orderStatus'];

      $data = array(
        'orderStatus'   => $orderStatus
       );
       echo json_encode($data);
}
?>

Javascript

<script type="text/javascript" >
var predefined_val = '<?php echo $orderStatus; ?>';// your predefined value.
$.document(ready(function(){
    setInterval(function(){
        $.ajax({
            type:"POST",
            url:"autorefresh.php", //put relative url here, script which will return php
            data:{orderId: <?php echo $orderId; ?>}, // if any you would like to post any data
            success:function(response){
                var data = response; // response data from your php script
                if(predefined_val !== data){
                    window.location.href=window.location.href;
                }
            }
        });                     
    },5000);// function will run every 5 seconds
}));

Ответы [ 2 ]

0 голосов
/ 07 января 2020

Я проверил это, создав два файла (autorefre sh. php, index. php) и протестировав db с таблицей, и это работает для меня. Я думаю, что приведенный ниже код будет полезен. Если нет, пожалуйста, поделитесь вашим кодом, я проверю и исправлю его.

autorefre sh. php

// Create connection
$db = new mysqli("localhost", "root", "","test");

$orderId = $_POST["orderId"];

$query = "SELECT * FROM orderinhomeonlinecall WHERE orderId='$orderId'";

$result = mysqli_query($db, $query);

  while($row = mysqli_fetch_array($result))
  {
      $orderStatus = $row['orderStatus'];

      $data = array(
        'orderStatus'   => $orderStatus
       );
       echo json_encode($data);
}
?>

индекс. php

<?php
$orderStatus ='pending';
$orderId =1;
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script type="text/javascript">
var predefined_val = '<?php echo $orderStatus; ?>';// your predefined value.
$(document).ready(function () {
    setInterval(function () {
        $.ajax({
            type: "POST",
            url: "autorefresh.php", //put relative url here, script which will return php
            data: {orderId: <?php echo $orderId; ?>}, // if any you would like to post any data
            dataType: "json",
            success: function (response) {
                var data = response; // response data from your php script
                if (predefined_val !== data.orderStatus) {
                    window.location.href = window.location.href;
                }
            }
        });
    }, 5000);// function will run every 5 seconds
});
</script>
0 голосов
/ 06 января 2020

Следующий код должен работать, нужно упомянуть dataType:"json", иначе использовать JSON.stringify(data) для анализа ответа

<script type="text/javascript">
var predefined_val = '<?php echo $orderStatus; ?>';// your predefined value.
$(document).ready(function () {
    setInterval(function () {
        $.ajax({
            type: "POST",
            url: "autorefresh.php", //put relative url here, script which will return php
            data: {orderId: <?php echo $orderId; ?>}, // if any you would like to post any data
            dataType: "json",
            success: function (response) {
                var data = response; // response data from your php script
                if (predefined_val !== data.orderStatus) {
                    window.location.href = window.location.href;
                }
            }
        });
    }, 5000);// function will run every 5 seconds
});
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...