2012-03-26 17 views
0

ajax呼び出しから返される配列に問題があります。ajaxが返された配列を持つjsonオブジェクトの使用

アレイはjsonを使用して暗号化されています。それは、問題は、私はJavaScriptで返された上記の配列を使用することができませんということです

while ($found_course = mysql_fetch_assoc($sql)) { 

    $info[] = array(
     'code' => $found_course['course_code'], 
     'name' => $found_course['course_name'] ); 

} 
echo json_encode($info); //this is returned to javascript 

以下の通りです。私は$ .eachメソッドを使ってみましたが、役に立たなかった。 eval()も[オブジェクトオブジェクト]として出力されるので動作しません。誰かがこれで私を助けてくださいできますか?

は、私がしたいすべてのコード、そしてもちろんの名前saperately

感謝をアクセスもできるようにすることです。 for()

for (var c in myAjaxArray){ 
    myAjaxArray[c].code; // contains the code 
    myAjaxArray[c].name // contains the name 
} 

とそれによる

+0

また、あなたのjavascriptを投稿できますか? – Tchoupi

+0

JSONの構造は何ですか?どのようにjavascriptになるかは本当に関係ありません。 – jbabey

+1

nit-picky:暗号化されていないjsonエンコードです。 – VolkerK

答えて

3

だけでループを使用すると、JSONオブジェクトを持っていることを確認するためにjQueryのAJAX呼び出しを「JSON」にデータ型を設定していることを確認します。または、$.getJSON()機能を使用します。

+2

私は 'c'の代わりに' var c'を使ってグローバルを作るのを避けることを提案します。 – jbabey

+0

@jbabeyおかげさまで良い提案 –

+0

ありがとうtopenerそれはあなたの方法を使用して動作します – Sahil

0
<script> 
var data = <?= json_encode($info); ?>; 
for (var i = 0; i < data.length; i++) { 
    var item = data[i]; 
    alert(item["code"] + "/" + item["name"]); 
} 
<script> 
+0

これはjavascriptの構造です – Sahil

0

これで、必要なデータが得られます。あなたが$ .eachを使ってどのように試してみましたか分かりませんが、それはあなたのajax呼び出しの成功関数にあるはずです。また、データ型がjsonに設定されていることを確認してください。

success: function(data){ 
    $(data).each(function(idx,val){ 
    alert(val.code + " " + val.name); 
    }) 
} 
関連する問題