1

我编写了一个脚本来进行 ajax 调用这是我的代码

function ajax_post(obj) {
    obj = '#'+ obj; 

    var formData = $(obj).serializeArray();    

    $.ajax({
        url: '__core/info.php',
        type:'get',
        dataType: 'json',
        data: formData,
        success: function(resp){
            alert(resp);
        }
    })
}

这是我的 info.php

$last_Res = theme::get_last_themes_desk(); //$last_Res is an array 
echo(json_encode($last_Res));

但是当警报它显示返回对象对象时......如果数据类型是 json 我应该怎么办我应该将它转换为另一种格式?$last_Res 是一个数组

4

3 回答 3

3

回应您的评论(显示响应数据,这是一个数组,包含一个对象):

//resp = [{"id":"2","name":"babak_theme","sh_describ":"support css3 and ie 9 ","rate":"3","time":"2"}];
resp = resp[0];
alert('id => ' + resp.id + ', Name => ' + resp.name);//etc...

会很好地为您服务...

$last_Res很可能是一个关联数组。JS 没有关联数组,但将它们转换为对象/对象字面量:

//php:
$foo = array('foo' => 'bar');
//in JS:
var foo = {foo: 'bar'};
alert(foo);//alerts [object Object]
console.log(foo);//shows you what properties/prototypes/methods the object has

仅此而已。要访问数据:

for (var prop in resp)
{//for "assoc arrays"
    if (resp.hasOwnProperty(prop))
    {
        alert(prop + ' => '+resp[prop]);
    }
}
for (var i=0;i<resp.length;i++)
{//for regular arrays
    alert(i + ' => ' + resp[i])'
}
于 2012-11-16T14:52:53.350 回答
1

在您的 info.php 中,您应该将Content-Type标题设置application/json为指示您要返回的内容:

header('Content-Type: application/json');
于 2012-11-16T14:52:26.033 回答
0

你还没有发布 json 格式。通常你可以访问相应的。像这样的值:

如果json格式为:

data['index']['subindex1'] = 'value1'
data['index']['subindex2'] = 'value2'

你可以

alert(resp.index.subindex1);
于 2012-11-16T14:51:18.813 回答