javascript - 带有 JSON 返回的 AJAX 请求未按照我的预期行为进行响应

标签 javascript php jquery json ajax

我正在尝试编写一个 ajax 调用来检查我的数据库并在发现更改时更新 div。

我对 JavaScript 比较陌生,对 JSON 更陌生。

我认为问题在于如何返回 JSON 数组,或者如何在 if 语句中使用它,但我不确定如何正确执行。 我得出这个结论的依据是,我从成功函数“已连接并执行的 PHP 页面...”中获得了控制台日志返回,而不是“已更新的票证页面...”日志。

这是我的 JavaScript:

function checkUpdates()
{
  $.ajax({
    type: "POST",
    url: 'ajax/checkDB.php',
    data: {},
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(data) {
      console.log('Connected and executed PHP page...');
      if (data.hasChanged == true) {
        console.log('Updated Tickets Page...');
        $("#contents").load("dynamic/tickets.php");
        $("#contents").fadeTo("fast", 1);
      }
    }
  });
}

$(document).ready(function() {
  setInterval("checkUpdates()", 3000);  // Calls the function every 3 seconds
});

如果重要的话,这是我的 PHP(checkDB.php,在 ajax 请求中调用)。

<?php
        include("../static/config.php");
        session_start();

        header("Content-Type: text/json");

        $result = mysqli_query($con,"SELECT notify FROM tickets WHERE notify='0'");
        $row_cnt = mysqli_num_rows($result);

        if($row_cnt > 0) {
            echo json_encode(array('hasChanged' => 'true'));
            mysqli_query($con,"UPDATE tickets SET notify='1' WHERE notify='0'");
        } else {
            echo json_encode(array('hasChanged' => 'false'));
        }


?>

最佳答案

您有拼写错误错误。您可以更改不带字符串的 php 代码或更改 if 条件。

//changes made here
if (data.hasChanged == "true") {

PHP

if($row_cnt > 0) {
            //here you are having string "true"
            echo json_encode(array('hasChanged' => 'true'));
            mysqli_query($con,"UPDATE tickets SET notify='1' WHERE notify='0'");
        } else {
            echo json_encode(array('hasChanged' => 'false'));
        }

关于javascript - 带有 JSON 返回的 AJAX 请求未按照我的预期行为进行响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34950163/

相关文章:

javascript - Angular - 使用自定义方法扩展 $resource 子对象

javascript - 更改 ReCaptcha 语言 OnClick

c# - 创建类似 C# 属性的 javascript 属性

php - 如何在 PHP 客户端和 C 守护程序服务器之间进行 IPC?

Javascript:捕获所有 OnError

javascript - 在 Ajax 中将字符串作为参数传递

javascript - 加载失败后将数据传递到 javascript 文件

php - 如何生成这种随机曲线?

php - 在html中显示json

javascript - 使用 AngularJs - Angular Material 或 Jquery 显示窗口模板