通过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

但是我不希望返回数组的所有结果,也就是$。每个人都在做。我想手动输出数组的不同部分,在我想要的地方和时间。

我尝试了这样的东西,这样我就可以得到数组结果,有"name"的键,但它没有工作(我的数组键之一是名称):

    $('#div').append(  key + ' : '  + data['name']  );

有什么建议吗?

编辑:让它更清楚一点:

比起循环并输出整个数组,我只想输出选定的部分:例如;

data.namedata.age

例如,这些将只输出包含姓名和年龄键的2个数组,即使该数组有10个其他结果。

我们正在处理的数组是这样的,只有一个结果,但是有多个值:
    {Name: 'Tom' Age: 20 Gender: 'Male'}

怎么样:

$.each(data, function(key, data) {
    $('#div #span-'+key).html(data);
});

因此,如果您有键name, age, gender,则需要3个span, 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(),它将允许您使用最新结果更新div; .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);
    });
}