【问题标题】:jQuery .each() and jQuery .post()jQuery .each() 和 jQuery .post()
【发布时间】:2012-02-15 17:12:12
【问题描述】:

我已经尝试了大约一天来让这个方法起作用。

我正在尝试使用 jQuery .each() 函数对给定数组中的每个元素执行操作。

数组来自.post() 请求

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

//perform the .each() function

});

})

数组通过php文件load_convos.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]";

老实说,我看不出我做错了什么......

========编辑==========

这是我到目前为止所做的

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

【问题讨论】:

  • 当然,看看我对原帖所做的修改。
  • 我对php代码没有头绪,所以你在php部分也有错误的代码。无论如何,你必须使用 function(index,value) 而不是 function(value)。

标签: jquery ajax arrays each .post


【解决方案1】:

您不必按照 Yaron 的建议对 PHP 代码进行更改。您可以稍微更改一下您的 jquery 代码:

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

在这里查看它的实际应用。 http://jsfiddle.net/2KZvt/1/

【讨论】:

    【解决方案2】:

    将 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");
     })
    

    【讨论】:

    • 我现在如何alert(data)数组中的每个数字?
    • console.log(i+":"+data[i])换成alert(data[i]);看看我编辑的代码
    猜你喜欢
    • 1970-01-01
    • 2011-11-19
    • 2013-09-28
    • 2011-06-08
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    相关资源
    最近更新 更多