2012-10-03 78 views
0

我在訪問JSON編碼的PHP關聯數組時遇到了一些問題。我得到了帶有$.get();的JSON編碼數組,並將其分配給data變量。jquery訪問和循環關聯對象

$.get("includes/ajax/public.php", { do: "get-data", id: value },function(data) { 
// NO DATA 
if (!data || data == 'false') $('#noData').slideDown('slow'); 
// THERE IS DATA 
else { 
if ($('#noData').is(':visible')) $('#noData').hide(); 
$('#records').html(data.totalRecords); 
console.log(data["totalRecords"]); 
console.log(data); 
} 
}); 

這是我在控制檯中得到的。

{"totalRecords":1,"data":[{"id":"1","country_id":"224", "name":"data name","address":"data address"}]} 

我必須訪問totalRecords和循環數據數組。但是我無法訪問它。

console.log(data.totalRecords); //outputs undefined. 

console.log(data['totalRecords']); //outputs undefined. 

我能擺脫掉總記錄的一部分,如果我可以指望有在data多少陣列。 data.length不起作用。它應該只給我1,但它給了我超過100個,這是不正確的。

我只需要訪問totalRecords的值(或者只計算其中有多少個數組),然後循環數據來操作DOM。

如果你能幫我解決這個小問題,我會很高興。

+0

你能發表'數據'的定義? – Blender

+0

請將JavaScript代碼發佈到您正在加載的位置並訪問此JSON。您似乎在以多種方式使用「數據」,並且不清楚發生了什麼。 – Blazemonger

+0

編輯我的問題,使事情更清晰。 – Revenant

回答

1

您所訪問的總記錄值,像這樣:

data.totalRecords 

它是有道理的,它返回1,因爲在的JSON字段的值確實是1:

"totalRecords":1 

你必須使用數據字段以接取元件的陣列:

data.data 

編輯:您必須使用$ .getJSON()方法,以便jQuery將其解釋爲JSON,而不僅僅是原始數據。

http://api.jquery.com/jQuery.getJSON/

+0

這就是問題所在。它沒有給出值1,它說'未定義' – Revenant

+0

當您執行console.log(data)時會得到什麼; ?你是否確定你通過它返回json的鏈接? –

+0

檢查答案中的編輯。 –