JSON数据的javascript if/else语句


javascript if/else statement for JSON data

正在尝试使用jquery和JSON运行计划警报。php文件按预期工作,并返回一个正确的JSON编码数组。jquery工作正常,在不检查JSON数据时,每分钟都会弹出一个对话框。但是当我添加JSON代码时,它停止工作,什么也没发生。

免责声明:我知道我不应该再使用mysql,应该使用准备好的语句,我会在这个项目完成后立即开始。

EDIT我修复了拼写错误,将$getJSON更改为$.getJSON,并发布了php脚本结果。

jQuery:

$(function() {
setInterval(function() {
    $.getJSON('includes/popup.php', function(data) {
        if(data.firstName == "None") {
            $("<div>No Callback</div>").dialog();   
        }
        else {
            $("<div>Yes Callback</div>").dialog();
        }
    })
}, 1000 * 60 * 1);
});

popup.php

<?php
$nowdate = date("Y-m-d");
$nowtime = date("H:i");
$alertSql = "SELECT id, compid, cbdate, cbtime, firstName, lastName FROM contacts WHERE  cbdate = '$nowdate' ORDER BY lastName desc";
$alertResult = mysql_query($alertSql, $link);
while($alertRow = mysql_fetch_array($alertResult)){
    $cbtime = date("H:i", strtotime($alertRow['cbtime']));
    if($cbtime == $nowtime) {
        $final_array[] = array("firstName" => $alertRow['firstName'], "lastName" =>                 $alertRow['lastName'], "cbdate" => $alertRow['cbdate'], "cbtime" => $alertRow['cbtime']);
        echo json_encode($final_array);
    }
    else {
        $final_array[] = array("firstName" => "None");
        echo json_encode($final_array);
    }
};
?>

php结果:

[{"firstName":"None"}]
 or 
[{"firstName":"Mickey","lastName":"Mouse","cbdate":"2014-09-22","cbtime":"15:36:00"}]

有一个打字错误:

$getJSON(...)

应该是

$.getJSON(...)

Javascript控制台应该已经提醒您注意未定义的函数。

此行:

$getJSON('includes/popup.php', function(data) {

应该是;

$.getJSON('includes/popup.php', function(data) {

在使用json之前,您必须将其转换为javascript对象。将代码更改为以下片段:

$.getJSON('includes/popup.php', function(data) {
  var myobj = jQuery.parseJSON(data);
  if(myobj.firstName == "None") {
    $("<div>No Callback</div>").dialog();   
  }
  else {
    $("<div>Yes Callback</div>").dialog();
  }
})