2017-09-06 45 views
0
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); 

JSON回声这是我的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": "[email protected]", 
    "address": "56 Sasdasd Asds", 
    "birthday": "1995-06-11", 
    "emergencyCN": "12312312", 
    "emergencyPerson": "asdasdasd", 
    "loyaltyCN": "ABC123" 
    } 
] 
+0

你能否也请添加至少一个你的PHP脚本的输出片段? – Shadow

+1

这是您的阵列结构:'阵列 ( [0] =>数组 ( [0] =>数组 ( [crewID] => [FName参数] => [LName的] => [smBook ] => [contactNo] => [电子邮件] => [地址] => [生日] => [emergencyCN] => [emergencyPerson] => [loyaltyCN] => ) ) ) ' 使用'response [0] [0] .FName'获取数组项 – diavolic

+0

添加console.log(response);成功的ajax功能将帮助您了解从服务器端返回的值。 – Lalit

回答

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来刺穿您的两个阵列,您将能够清楚地看到此内容。

+0

当我使用警报(响应[0] .FName)响应是“未定义” –

+0

您是否尝试过'console.log(response)'? – Shadow

+0

diavolic评论作品。谢谢! –