Javascript 无法从PHP获取到$.ajax的JSON回显
这是我的jQuery代码:Javascript 无法从PHP获取到$.ajax的JSON回显,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,这是我的jQuery代码: 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'=>$
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数据(如FName
)时,我得到了一个未定义的错误。有什么问题吗?我是jQuery中JSON的新手。我的PHP中甚至有以下代码:
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:
header("Content-Type: application/json", true);
我认为问题就在这里
[
{
"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);
}
这将访问数组中的第一个结果,并继续访问,然后警告它的FName
属性的内容
使用console.log(response)
可以很好地查看您处理的整个对象,从而了解如何使用它
更新 由于您已经提供了输出json,因此您似乎有一个包含结果数组的数组
如果您使用
console.log,您将能够清楚地看到这一点,但您需要响应[0][0]。FName
来刺穿您的两个数组。我认为问题就在这里
[
{
"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);
}
这将访问数组中的第一个结果,并继续访问,然后警告它的FName
属性的内容
使用console.log(response)
可以很好地查看您处理的整个对象,从而了解如何使用它
更新
由于您已经提供了输出json,因此您似乎有一个包含结果数组的数组
如果您使用console.log,您将能够清楚地看到这一点,但您需要response[0][0]。FName
来穿透您的两个数组。您是否可以至少添加一段php脚本输出?这是您的数组结构:array([0]=>array([0]=>array)([crewID]=>[FName]=>[LName]=>[smBook]=>[contactNo]=>[email]=>[address]=>[Birth]=>[emergencyCN]=>[emergencyPerson]=>[loyaltyCN]=>)
使用响应[0][0].FName
获取数组项添加控制台.log(响应);在成功中,ajax的函数将帮助您了解从服务器端返回的值。您还可以添加至少一段php脚本输出吗?这是您的数组结构:array([0]=>array([0]=>array([crewID]=>FName]=>[LName]=>[smBook]=>[contactNo]=>[email]=>[address]=>[Birth]=>[emergencyCN]=>[emergencyPerson]=>[loyaltyCN]=>))
使用response[0][0].FName
获取数组项add console.log(response);在成功中,ajax的函数将帮助您了解从服务器端返回的值。当我使用alert(response[0].FName)时,响应是“未定义”的,您是否尝试过console.log(response)
?我认为花时间了解console.log
。这样的问题很容易调试。当我使用alert(response[0].FName)时,响应是“未定义”的,您是否尝试过console.log(response)
?我认为花时间学习console.log将是非常值得的。它使这样的问题很容易调试。