2013-03-05 47 views
0

我正在串格式而不是阵列形式,其从输出AJAX获得字符串,而不是从输出AJAX

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

})阵列;

这是我使用它在PHP文件

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

我想作为数组不是字符串输出的代码(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); 
} 

而且我得到的输出。

谁能给我这个

+0

如果你只是调用'alert(data)',会发生什么? – Andrew 2013-03-05 07:44:51

+0

它显示为“[{\”return_id \“:\”129 \“,\”order_id \“:\”126450 \“,\”parent_status \“:\”0 \“}]]”但它是也字符串 – santhosh 2013-03-05 07:50:20

回答

0

你应该使用JSON的解决方案,服务器应该返回JSON数组和jQuery的应该分析这种JSON不串看到:
http://php.net/manual/en/function.json-decode.php

也jQuery的应是

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

它的工作表示感谢。我还有另一个疑问 如果我使用$ .ajax();我得到的输出为字符串,我以前有过。 – santhosh 2013-03-05 07:54:38

+0

Plz小心接受答案,如果它解决了你的问题:) – 2013-03-05 07:55:54

1

可以指示jQuery的通过将字符串“JSON”作为第三个参数的函数$.get解析响应为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方法的简写。请参阅the jQuery docs,地址为$.get

+1

它的工作原理。另外我想为$ .ajax(); 。我也得到了字符串作为输出。你可以给我这个解决方案 – santhosh 2013-03-05 08:01:22

+0

我的编辑应该解释这一点。 – Andrew 2013-03-05 08:08:23