无法从PHP获取JSON回显到$ .ajax

时间:2017-09-06 05:03:48

标签: javascript php jquery json 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"
  }
]

1 个答案:

答案 0 :(得分:2)

我认为问题出在这里;

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

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

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

这将访问数组中的第一个结果,然后继续访问,然后提醒它的FName属性的内容。

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

更新

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

如果您使用console.log但是需要response[0][0].FName穿透两个数组,您将能够清楚地看到这一点。