2017-09-06 62 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評論作品。謝謝! –