繁体   English   中英

无法从PHP到$ .ajax的JSON回声

[英]Cannot get JSON echo from PHP to $.ajax

while($row = $result->fetch_array()) {
  array_push($json_result,
  array('crewID'=>$row[0],
  'FName'=>$row[1],
  'LName'=>$row[2],
  'smBook'=>$row[3],
  'contactNo'=>$row[4],
  'email'=>$row[5],
  'address'=>$row[6],
  'birthday'=>$row[7],
  'emergencyCN'=>$row[8],
  'emergencyPerson'=>$row[9],
  'loyaltyCN'=>$row[10]));
}

echo json_encode(array($json_result),JSON_PRETTY_PRINT);

这是我的jQuery代码:

function displayGuestData(guestID) {
  $.ajax({
    url:"functions/f_get_guests_json.php",
    method:"POST",
    data:{guestID:guestID},
    dataType: "json",
    success:function(response) {
      alert(response.FName);
    }
  });
}

现在我的问题是,当我警告任何JSON数据(例如FName时,我收到一个未定义的错误。 可能是什么问题呢? 我是jQuery中的JSON新手。 我的PHP中甚至包含以下代码:

header("Content-Type: application/json", true);

编辑:

这是JSON:

[
  {
    "crewID": "4",
    "FName": "Abc Abc",
    "LName": "Abc",
    "smBook": "ABC123",
    "contactNo": "12312312",
    "email": "asdasd@yahoo.com",
    "address": "56 Sasdasd Asds",
    "birthday": "1995-06-11",
    "emergencyCN": "12312312",
    "emergencyPerson": "asdasdasd",
    "loyaltyCN": "ABC123"
  }
]

我认为问题出在这里;

success: function(response){
    alert(response.FName);
}

据我所知,您正在返回一个包含您的结果的数组。 因此,也许您应该尝试将以上内容更改为以下内容:

success: function(response){
    alert(response[0].FName);
}

这将访问数组中的第一个结果,并继续进行访问,然后警告其FName属性的内容。

使用console.log(response)是查看要处理的完整对象的好方法,因此可以弄清楚如何使用它。


更新

由于您提供了输出json,因此看来您有一个包含结果数组的数组。

如果您使用console.log但是您需要response[0][0].FName来穿刺两个数组,就可以清楚地看到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM