来自PHP的Ajax中的未定义变量

时间:2017-07-18 13:32:01

标签: php jquery ajax

我尝试了不同的方法来完成这项工作,但它仍然无效。 data[0].urgency未定义。我试图对数据进行字符串化,但结果之间有一堆\ n(见下文)。

提前谢谢。

我的ajax代码:

function ajaxCall() {
      $.ajax({
        type: "POST",
        url: "../nav/post_receiver.php",
        success: function(data) {
          console.log(data.length);
          console.log(data[0].urgency);
        }
      });
    }

我的PHP代码:

<?php 
    session_start();
    ob_start(); 
    require_once('../../mysqlConnector/mysql_connect.php');
    $results = array();
    $query="SELECT COUNT(initID) AS count, urgency, crime, initID, TIMESTAMPDIFF( minute,dateanalyzed,NOW()) AS minuteDiff FROM initialanalysis WHERE commanderR='0' AND stationID='{$_SESSION['stationID']}';";
    $result=mysqli_query($dbc,$query);
    while ($row = $result->fetch_assoc()){
        $count = $row['count'];
        $urgency = $row['urgency'];
        $crime = $row['crime'];
        $initID = $row['initID'];
        $minuteDiff = $row['minuteDiff'];

        $results[] = array("count" => $count, "urgency" => $urgency, "crime" => $crime, "initID" => $initID, "minuteDiff" => $minuteDiff);
    }
    echo json_encode($results);
?>

PHP的结果:

  

[{ “计数”: “9”, “紧迫性”: “低”, “犯罪”: “火器”, “initID”: “6”, “minuteDiff”: “4743”}]

我认为结果格式错误了?我不确定。

这是console.log(data)的结果,有一个html的评论标记,我不知道为什么:

 <!--  -->
[{"count":"9","urgency":"Low","crime":"Firearm","initID":"6","minuteDiff":"4761"}]

2 个答案:

答案 0 :(得分:0)

像这样更新你的ajax电话

function ajaxCall() {
  $.ajax({
    type: "POST",
    url: "../nav/post_receiver.php",
    success: function(data) {
      data= jQuery.parseJSON(data);
      console.log(data.length);
      console.log(data[0].urgency);
    }
  });
}

答案 1 :(得分:0)

使用JSON解析器验证json响应,如JSON.parse

function ValidateJsonString(str) {
    try {

        JSON.parse(str);

    } catch (e) {

        return false;

    }

    return true;

}