2012-02-29 7 views
0

私は関連するリンクを見てみましたが、これをGoogleで検索しましたが、正確に私を助けることのできるものは見つかりませんでした。ここでWeb開発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に等しいVARを持っています。私がしたいことは、これを解析して配列を作ることができ、その配列を使ってforループを実行することです。しかし、私は正直なところ、それをどうやって行うのか分からない。私が言ったように、おそらく非常に簡単な、私はちょうどこれのための例を見つけることができません。ありがとう!

+0

いくつかのJSフレームワークを検討することを検討してください。 – joakimdahlstrom

答えて

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文字列を検証し、eval()とは対照的にnew Functionを使って評価しようとします。

new Functionはローカル変数には影響しませんが、eval()は現在のスコープ内でコードを実行するので、それらを混乱させることができます。

+0

afaik、jsonをjavascriptの変数に解析するのはちょうど 'eval()' –

+0

です。eval()はやや奇妙で遅いです。 jQueryはブラウザのネイティブJSONパーサーを最初に使用しようとします。それからそれは "新しい機能"の前にテキストの健全性チェックを行い、直接評価はしません。 – Timeout

+0

お役立ち情報... –

3

PHPでレスポンスをJSON形式でプリントし、javascriptで評価して配列のようにアクセスできます。ご覧くださいjson_encode()

関連する問題