2016-02-27 77 views
1

我是來自JSON得到以下數據如何jQuery中讀取多行的JSON數據+ WordPress的

返回數據:

{ 
    "items": [{ 
     "name": "abc", 
     "meta_value": "3020" 
    }, { 
     "name": "xyz", 
     "meta_value": "3020" 
    }] 
} 

我使用這個編碼數據echo json_encode(array('items' => $data));

並繼以解碼和打印來自JSON的數據,但它給錯誤

"Uncaught TypeError: Cannot read property 'length' of undefined"

$.each(data.items, function(i, item) { 
    $('#dobsondev-ajax-table').append('<tr><td>' + data.name + '</td><td>' + data.name + '</td><td>' + data.meta_value + '</td><td>' + data.name + '</td></tr>'); 

}); 
+0

您提供的錯誤與您添加的代碼無關。 – RRK

+0

如果我從數據庫返回單行,並使用json_encode進行編碼,那麼它是正常的,並正確顯示數據,即使我使用索引像這樣的數據[0] .name它顯示數據,如果我不放在循環內 – coder

回答

0

試試這個。您可以在函數的循環中使用item參數,也可以嘗試data.items[i]

$.each(data.items, function(i, item) { 
    $('#dobsondev-ajax-table').append('<tr><td>' + item.name + '</td><td>' + item.name + '</td><td>' + item.meta_value + '</td><td>' + item.name + '</td></tr>'); 
    //alert(this.name); 
}); 
+0

是做同樣的事情,但仍然得到錯誤 – coder

+0

@coder我認爲你需要做更多的調試,並找到哪一行錯誤是未來。 – RRK

+0

實際上這給我錯誤,當我把它放在循環中,否則它是好的,並顯示單行給定索引,沒有循環我試圖像數據[index] .name然後它的工作, – coder

0

您不能直接用[0]調用陣列中的第一項。你必須做的第一件事就是從返回的數據檢索項目,像這樣:

var items = data["items"]; 

這會給你兩個項目您返回的數據對象。從那裏,你可以檢索兩個項目對象是這樣的:

var item = items[0]; 

或循環:

$.each(items, function(i, item) { 
    // Your code 
} 
+0

我使用這個數據= JSON.parse(data);然後嘗試$ .each(data.items,function(i,item){item.name}); – coder

+0

這應該工作。看到這個鏈接:https://jsbin.com/xibibidoli/edit?html,js,console,output – Froodooo