AJAX / PHP / MySQL - 检测数据库更改并提醒用户?

时间:2018-03-31 01:07:28

标签: javascript php jquery mysql ajax

Jquery的:

    $.ajax({
        type: "GET",
        dataType: 'html',
        url: "order",
        timeout: 30000,
        cache: true,
        success: function(data, status, xhr) {
    $('#changes').append(data);
alert("x amount of changes have been updated");
        },
        error: function(xhr, ajaxOptions, thrownError) {
          alert(xhr.status);
          alert(thrownError);
        }
      });

PHP:

$stmt = $db->prepare("SELECT * FROM `orders` WHERE `date` > NOW()");
//Other MySQL stuff

基本上我不知道如何做到这一点,但我希望每次有新订单时都会提醒用户,但我究竟会在PHP方面提醒用户是否有变更?

我的大脑今天不工作,我需要检测已经有多少订单然后将新订单附加到表格(而不是旧订单)

我可以从order.php页面解析json但是不显示它并只显示HTML吗?

我真的希望有人可以帮助我!

1 个答案:

答案 0 :(得分:0)

是的,您可以从PHP发送和接收JSON。以下是来自一个生产系统,但我从中删除了很多代码,只是为了向您展示重要的东西。您将需要添加错误检查逻辑等(代码可能有语法错误(错别字),但正如我所说,功能):

<script>
function checkForNew() {
var POSTData='CMD=getNewInvoices&'; /* Your PHP script can handle different requests */
POSTData=POSTData + 'myData=' + pseudoSave;
$.ajax( {
    type: 'POST',
    url: './checkForNewInvoices.php',
    data: POSTData,
    async: false,
    error: function(data) {
      retData=data;
      // Do error stuff
    },
    success: function(data) {
      retData=data;
      retJ=JSON.parse(retData);
      // Check here if valid JSON
    }
});
setTimeout(function() { checkForNew(); }, 5000);
}

$(document).ready(function() {
  checkForNew();
});

</script>

<?php {checkForNewInvoices.php}
  ... 
  ...
  echo json_encode($myJsonData); /* If data is in an array */
?>

这就是我要做的事情(逻辑/思考{警告可能有缺陷:-)}):

  1. 当我保存订单(更新/插入)时,我会用整数或&#39;标志(真/假)更新文本文件(或db字段)&#39;。
  2. 我的网站在加载时会从计数和标记的状态开始,检查没有处理过的标记的订单并保留本地标记&#39;加载状态。
  3. 然后我将检查标志/ int是否已更改(没有状态标志的顺序)。如果已经更改或订单没有显示/处理过的&#39;状态,然后我知道有新的订单/发票,然后我将发送服务器查询(ajax)来检索订单或计数等。
  4. 忧虑/条件:

    1. 如果订单来自全国各地,很多人(很多人)都可以访问这些网站。
    2. 订单来自很多人,但只有一个人正在加载监控站点(多对一)。
    3. 订购网站是一个地方,监控网站是一个(一对一 - 容易)。
    4. 相信这有帮助。

      复活节快乐!