我正在尝试编写一个ajax调用,用于检查我的数据库并在发现更改时更新div。使用JSON返回的AJAX请求没有响应我的预期行为
我相对较新的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'));
}
?>
做'console.log(data)'你在干什么得到些什么?在'“true”中使用引号' –
检查浏览器控制台(F12) –
中的返回值,在console.log('Connected and executed PHP page ...')后放置一个'console.log(data)'。我猜你需要解析从服务器返回的json。它可能是一个字符串或...你需要的数据可以在'data.responseText'中找到 –