我从 AJAX 处理程序代码 (PHP) 中使用 json_encode 返回一组横幅 -
echo json_encode(array("bannersData" =>$bannersData));
回显时,数据的顺序到此为止是正确的。
但是,在 AJAX 响应处理代码(javascript 部分)中,我在 chrome 版本 26.0.1410.64 m 中对返回的对象进行了不同的排序(似乎按横幅 ID 排序)。我不确定我们是否有任何选项可以强制保持原始排序顺序不变。
这是代码 -
$.ajax({
type: "POST",
async: false,
url: posturl,
data:postdata,
dataType: "json",
success: function(msg){
if($.isEmptyObject(msg.bannersData))
{
bannerOptionsHtml = "No Banner available";
}
else
{
/*getting unexpectedly sorted result here*/
}
});
示例数据-
输入
当我这样做时echo json_encode()
,以下是数据的原始顺序 -
'fggd' [12658]
banner 2 [12653]
Copy 2 of banner 1 [12655]
Copy 3 of banner 1 [12656]
Copy 4 of banner 1 [12657]
sdfds = 'xyz' [12654]
输出
但是,以下是我在 AJAX 响应中得到的 -
在 chrome 中(根据横幅 ID 进行排序,似乎 - 下面的 RHS 列是横幅 ID)
Test [12652]
banner 2 [12653]
sdfds = 'xyz' [12654]
Copy 2 of banner 1 [12655]
Copy 3 of banner 1 [12656]
Copy 4 of banner 1 [12657]
'fggd' [12658]
在 Firefox 中(如预期的那样)
'fggd' [12658]
banner 2 [12653]
Copy 2 of banner 1 [12655]
Copy 3 of banner 1 [12656]
Copy 4 of banner 1 [12657]
sdfds = 'xyz' [12654]