jQuery .each () и jQuery .post () - PullRequest
       14

jQuery .each () и jQuery .post ()

1 голос
/ 21 января 2012

Я пытаюсь примерно один день, чтобы этот метод заработал.

Я пытаюсь использовать функцию jQuery .each(), чтобы выполнить действие для каждого элемента в данном массиве.

Массив приходит из .post() запроса

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

//perform the .each() function

});

})

Массив возвращается в этом формате [56,98.24,46] через файл php load_convos.php

Это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]";

Честно говоря, я не вижу, что я делаю неправильно ...

======== РЕДАКТИРОВАТЬ ==========

Это то, что я сделал до сих пор

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

Ответы [ 2 ]

4 голосов
/ 21 января 2012

измените две последние строки вашего php-скрипта на

 echo json_encode($uids);

и в jQuery - вместо того, чтобы пытаться использовать $.each, используйте обычный цикл for для полученных данныхтакже необходимо добавить четвертый параметр в $.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");
 })
2 голосов
/ 21 января 2012

Вам не нужно вносить изменения в ваш PHP-код в соответствии с предложением Yaron.Вы можете немного изменить свой код jquery:

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

Смотрите его в действии здесь.http://jsfiddle.net/2KZvt/1/

...