javascript if / else语句用于JSON数据

时间:2014-09-22 15:13:46

标签: php jquery json

尝试使用jquery和JSON运行预定警报。 php文件按预期工作并返回正确的JSON编码数组。当不检查JSON数据时,jquery每分钟都会工作并弹出一个对话框。但是,当我添加JSON代码时,它停止工作,没有任何反应。

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

编辑我修正了拼写错误并将$ 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"}]

3 个答案:

答案 0 :(得分:2)

有一个错字:

$getJSON(...)

应该是

$.getJSON(...)

Javascript console应该已经提醒您未定义的功能。

答案 1 :(得分:2)

这一行:

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

应该是;

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

答案 2 :(得分:0)

在使用它之前,你必须将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();

  }
})