2012-02-29 147 views
0

我已经试过看相关的链接和谷歌搜索了这一点,但我还没有找到任何可以帮助我的东西。并且请原谅网站开发newb在这里。这可能是一个非常简单的答案:如何在JavaScript中解析SQL查询返回?

我在做的是一个调用php文件的ajax javascript函数。此PHP文件连接到数据库,并从表中获取的所有信息,例如:

<?php require_once('Connections/callConn.php'); ?> 
<?php 

$query_getStatus = "SELECT tStatus FROM tables"; 
$status = mysql_query($query_getStatus, $callConn) or die(mysql_error()); 
$row_status = mysql_fetch_assoc($status); 
$tStatus = $row_status['tStatus']; 

echo $tStatus; 

mysql_close($con); 
?> 

然后在我的JavaScript函数,我等于xmlhttp.responseText一个变种。我想要做的就是解析这个,这样我就可以创建一个数组,然后对该数组执行for循环。但我真的不知道该怎么做。就像我说的,可能很简单,我只是找不到一个这样的例子。谢谢!

+0

考虑看一些JS框架。 – joakimdahlstrom 2012-02-29 00:39:36

回答

2

从PHP获取数据并通过json_encode(如Mike B提到的)运行它。

然后,我会建议切换到jQuery,以便您可以轻松评估JS方面的JSON响应。

// Assuming a GET request. 
$.get('your_page.php', 
     {}, 
     function(data) { 
      // "data" is your JSON object. 
     }, 
     "json"); 

(从评论)

的jQuery已经缠评估JSON一些优选的逻辑。它将首先尝试使用浏览器本地json解析器(如果可用)解析它。如果失败,它将尝试验证json字符串,并使用new Function而不是eval()对其进行评估。

new Function不会影响局部变量,而eval()被允许混淆它们,因为它执行当前范围中的代码。

+0

afaik,将json解析为javascript变量只是'eval()' – 2012-02-29 00:38:24

+0

eval()有点奇特而且速度较慢。 jQuery将首先尝试使用浏览器本机JSON解析器。然后它会对“新功能”之前的文本进行完整性检查,而不是直接评估。 – Timeout 2012-02-29 00:57:18

+0

很高兴知道!.. – 2012-02-29 01:14:07

3

您可以在PHP中将响应打印为JSON,然后在javascript中对其进行评估,以像数组一样访问它。看看json_encode()