簡體   English   中英

通過JSOn傳遞PHP數組以在Jquery中輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM