0

我得到的是字符串格式,而不是从 ajax 输出的数组格式

$.get('ajax/order_details.php?order_limit=true&order_limit_id=<?php echo $_GET['id']; ?>', function(data){
                                alert(data.toSource());

});

这是我在 php 文件 (order_details.php) 中使用的代码

if(isset($_GET['order_limit_id']) and isset($_GET['order_limit'])){
    $g_o = $mysql->query("SELECT * FROM ocreturn r, ocorder o WHERE o.order_id = '".$_GET['order_limit_id']."' and r.customer_id = o.customer_id");
    echo json_encode($g_o->rows);
}

我得到的输出为

(new String("[{\"return_id\":\"129\",\"order_id\":\"126450\",\"parent_status\":\"0\"}]"))

我希望输出为数组而不是字符串。

谁能给我这个解决方案

4

2 回答 2

1

您可以通过将字符串 'json' 作为第三个参数传递给函数来指示 jQuery 将响应解析为 JSON $.get

$.get('ajax/order_details.php?order_limit=true&order_limit_id=<?php echo $_GET['id']; ?>', function(data){
  alert(data.toSource());
}, 'json');

如果你想使用 jQuery 的底层$ajax函数,你可以使用下面的:

$.ajax({
  url: ajax/order_details.php,
  data: {order_limit: true, order_limit_id: <?php echo $_GET['id']; ?>},
  success: function (data) {
    alert(data);
  },
  dataType: 'json'
});

这实际上与调用$.get. 请记住,$.get 方法只是 $.ajax 方法的简写。请参阅jQuery 文档$.get

于 2013-03-05T07:55:02.383 回答
0

你应该使用 JSON ,服务器应该返回 JSON 数组,jquery 应该解析这个 json 而不是字符串,请参见: http:
//php.net/manual/en/function.json-decode.php

而且jquery应该是

$.getJSON("URL",function(msg){
     alert("result : "+msg);
});
于 2013-03-05T07:48:34.340 回答