[英]Passing PHP array through JSOn for output in Jquery
我正在研究一個jQuery腳本,該腳本從MySQL數據庫檢索一個PHP數組並將其作為JSON對象返回。 所有這些都可以正常工作,並且我可以輸出原始JSON對象(包括密鑰)。
我遇到的問題是我輸出它的方式,目前我正在使用jQuery的$ .each。
示例:(不是完整的腳本,只是所需的內容)
if(data){
$.each(data, function(key, data) {
$('#div').append( key + ' : ' + data );
});
}
} , 'json')
因此,目前的輸出如下所示:
Name: Tom Age: 20 Gender: Male
但是我不希望返回數組的所有結果,這就是$ .each在做什么。 我想在需要的位置和時間手動輸出數組的不同部分。
我嘗試過類似的操作,這樣我就可以得到鍵值為“ name”的數組結果,但是它不起作用(我的數組鍵之一是name):
$('#div').append( key + ' : ' + data['name'] );
有什么建議么?
編輯:使其更加清楚:
而不是遍歷和輸出整個數組,我只想輸出選擇的部分:
data.name data.age
例如,即使該數組還有其他10個結果,它們也只會輸出帶有名稱和年齡鍵的2個數組。
我們正在使用的數組就像這樣,只有1個結果,但是有多個值。
{Name: 'Tom' Age: 20 Gender: 'Male'}
關於什么:
$.each(data, function(key, data) {
$('#div #span-'+key).html(data);
});
因此,如果您具有鍵名稱,年齡,性別,則需要3個跨度,其ID為:#span-name,#span-age,#span-gender,它們將被填充數據。 如果您只需要姓名和年齡,只需刪除您的#span-gender span,它就不會顯示。
您的html將類似於:
<div id="div">
<span id="span-name"></span>
<span id="span-age"></span>
</div>
我認為您想這樣做:
$.each(data, function(key, val) {
$('#div').html(key + ' : ' + val.name);
});
建議:使用.html()
它將使您使用最新結果更新.append()
會將結果附加到以前的結果中。
在each
使用不同的變量名。 您正在使用data
作為主要對象以及回調的第二個參數。 另請注意,鍵的使用區分大小寫
將第二個更改為其他內容
$.each(data, function(key, item) {
$('#div').append( item.Name )
還不清楚您的數據是什么樣的。 我假設它是像這樣的對象數組:
[ {Name: 'Tom' Age: 20 Gender: 'Male'}, {Name: 'Jane' Age: 20 Gender: 'Female'}]
如果數據僅是單個對象,而不是數組,則不需要使用$.each
而只需使用對象符號直接訪問對象
{Name: 'Tom' Age: 20 Gender: 'Male'}
alert( data.Name);
在您的jQuery代碼中,執行此操作。
if(data){
var dec_data = jQuery.parseJSON(data[0]);
//Loop over it now
jQuery.each(dec_data, function(key, val){
//Stick it in the div
jQuery('div').append(key+' - '+val);
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.