我正在尝试编写一个ajax调用来检查我的数据库并在发现更改时更新div。
我对JavaScript相对较新,对JSON事物更新。
我认为问题在于我如何返回JSON数组,或者如何在if语句中使用它,但我不确定如何正确地执行它。 我得出了这个结论,基于我从成功函数"连接并执行PHP页面返回控制台日志的事实......",但不是"更新票证页面...& #34;日志中。
这是我的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'));
}
?>
答案 0 :(得分:2)
你有拼写错误error
。您可以更改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'));
}
答案 1 :(得分:2)
在剪切的代码中,您正在检查字符串SetDeviceProperty(ConnectedScanner, 3096, 1)
SetDeviceProperty(ConnectedScanner, 6146, 2)
SetDeviceProperty(ConnectedScanner, 6147, 300)
SetDeviceProperty(ConnectedScanner, 6148, 300)
SetDeviceProperty(ConnectedScanner, 6154, -50)
SetDeviceProperty(ConnectedScanner, 6155, -50)
是否等于布尔值'true'
。
您有两种选择:
使用
从php返回一个布尔值true
和
echo json_encode(array('hasChanged' => true));
或者您可以使用以下命令检查javascript中的字符串:
echo json_encode(array('hasChanged' => false));
答案 2 :(得分:0)
您应该以适当的数据类型返回数据。
当您使用问题中的代码对json进行编码时,'true'不是布尔值,因此您的javascript无法将'hasChanged'属性与布尔值进行比较。
你可以试试下面的代码吗?这将使'hasChanged'属性成为布尔值。
echo json_encode(array('hasChanged' => true));