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形式を投稿していません。通常、respにアクセスできます。次のような値:

json 形式が次の場合:

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

あなたはできる

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