2012-01-21 12 views
1

私はこのメソッドを動作させるために約1日掛かりました。jQuery .each()とjQuery .post()

jQuery .each()関数を使用して、指定された配列の各要素に対してアクションを実行しようとしています。

配列が.post()要求

$(document).ready(function() { 
$.post("assets/scripts/chat/load_convos.php",{}, function(data) { 

//perform the .each() function 

}); 

}) 

から来ている配列がload_convos.php

のphpファイルを介して、この形式[56,98.24,46]で返される。これは、PHPファイルです

$get_convos = mysql_query("SELECT status, partner_user_id FROM chat_convos WHERE user_id = '$user_id'"); 
$following_user_id = ''; 
$uids = array(); 
while($row = mysql_fetch_assoc($get_convos)){ 
    array_push($uids, $row['partner_user_id']); 
} 
$following_user_id = implode(',', $uids); 
echo "[$following_user_id]"; 

I正直ドン私が間違っていることを見る...

======== EDITの==========

これは私が

$.each(data, function(value) { 
    alert(value); 
}); 
+0

それぞれの使い方は分かりますか? –

+1

もちろん、元の投稿で行った編集を確認してください。 – Frank

+0

私はPHPコードの頭を持っていないので、あなたもPHPの部分で間違ったコードを持っています。とにかく、function(value)ではなくfunction(index、value)を使用する必要があります。 –

答えて

4

変更PHPスクリプトの最後の二つの行に、これまで行われているものです

echo json_encode($uids); 

とjQueryで - の代わり$.eachを使用しようとすると、(あなたも、それが応答を処理することを確実にするために$.postに四番目のパラメータを追加することもできますが、受信したデータをループのために定期的に使用しますJSONとして)

$(document).ready(function() { 
    $.post("assets/scripts/chat/load_convos.php",{}, function(data) { 
     for(var i in data){ 
     //console.log(i+":"+data[i]); 
     alert(data[i]); 
     } 
    },"json"); 
}) 
+0

配列の各番号を '警告(データ)'するにはどうすればいいですか? – Frank

+1

'console.log(i +": "+ data [i])'を 'alert(data [i]);に置き換えてください; 私の編集したコードを見てください –

1

Yaronの提案に従ってPHPコードを変更する必要はありません。 jqueryコードを少し変更することができます:

$.each(data, function(index, value) { 
    alert(value); 
}); 

ここで実際の動作をご覧ください。 http://jsfiddle.net/2KZvt/1/