获取字符串而不是来自ajax输出的数组

时间:2013-03-05 07:40:06

标签: php jquery

我得到字符串格式而不是从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\"}]"))

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

任何人都可以给我这个解决方案

2 个答案:

答案 0 :(得分:1)

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

$.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方法的简写。请参阅$.get上的the jQuery docs

答案 1 :(得分:0)

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

并且jquery也应该是

$.getJSON("URL",function(msg){
     alert("result : "+msg);
});