我正在尝试编写一个 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/