我得到字符串格式而不是从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\"}]"))
我希望输出为数组而不是字符串。
任何人都可以给我这个解决方案
答案 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);
});