0

我从 PHP 发送一个数组json_encode,并尝试使用 AJAX 和 jQuery。一切都好。

JSON结构是:

names{"p1":"John","p5":"Smith"}

jQuery代码是:

$.ajax({
type: "POST",
url: "return.php",
dataType: "json",
data: "id=56",
success: function(data) {
        $(data.names).each(function(key, txt) {
            alert(txt);
        });
    }
}

这段代码不返回任何东西!我认为浏览器不输入each

我应该怎么办 ?

4

3 回答 3

3

取而代之的是:

$(data.names).each(function(key, txt) {
    alert(txt);
});

用这个:

$.each(data.names, function(key, txt) {
    alert(txt);
});

正如您提到的,您的 json 似乎不正确:names{"p1":"John","p5":"Smith"}

这应该是这样的:

{
    "names": {
        "p1": "John",
        "p5": "Smith"
    }
}

你可以在这里检查你的 json:http: //jsonlint.com/

于 2012-12-16T17:36:56.110 回答
1

在您的代码中,您可以只使用parseJSON ()。

    $.ajax({
    类型:“发布”,
    网址:“return.php”,
    数据类型:“json”,
    数据:“id=56”,
    成功:函数(数据){
        var d = jQuery.parseJSON(数据);
        // ... 做东西
    }
    });

于 2012-12-16T18:15:40.350 回答
1

我建议你使用 jQuery 的 $.getJSON(); http://api.jquery.com/jQuery.getJSON/ 但是直接回答你的问题;你没有关闭你的 ajax() 函数。

$.ajax({
type: "POST",
url: "return.php",
dataType: "json",
data: "id=56",
success: function(data) {
        $(data.names).each(function(key, txt) {
            alert(txt);
        });
    }
});
于 2012-12-16T17:38:56.910 回答