2012-02-29 68 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()