Jquery动态更改ajax请求的数据值

时间:2013-05-08 16:28:41

标签: javascript jquery ajax

我需要这个函数来计算每次插入的消息的最后一个id,但是这样它不起作用,它总是发布初始数

 $("#conversazione").smartupdater({
 url : "localhost/social/public/async/check-conversazione",
 minTimeout: 2000,
 type: 'POST',
 data: { 
    'id': id,
    'last': $(".messaggioAltri:first").attr("data-number-message")
},
dataType: 'JSON'
},
function (data) {

    if(data.aggiornamenti==1){

        $.each(data.messaggi, function(indice, message){

                       mess="<div class='singoloMessaggio'> data-number-message="+message.number+">"
                                ....
                                "</div>";

                        $(mess).hide();
                        $(mess).css({'background-color': '#FF7519'});
                        $('#messaggiConversazione').prepend(mess);
                        $(mess).fadeIn(1000);
                        $(mess).removeAttr("style");                           
                   });


    }else{
        //nothing
    }

}
);

我也尝试使用函数,例如:

$("#conversazione").smartupdater({
 url : "localhost/social/public/async/check-conversazione",
 minTimeout: 2000,
 type: 'POST',
 data: { 
   'id': id,
   'last': getLast()
 },....etc...

function getLast(){
 return $(".messaggioAltri:first").attr("data-numero-messaggio");
}

但我总是有同样的错误,fierbug我看到它总是发送初始数字......它似乎很简单但我无法弄清楚什么是错的......你有什么建议做什么?

2 个答案:

答案 0 :(得分:0)

尝试JSON.stringify

$("#conversazione").smartupdater({
 url : "localhost/social/public/async/check-conversazione",
 minTimeout: 2000,
 type: 'POST',
 data: JSON.stringify({'id':id,'last': getLast()}), ....etc...
});

答案 1 :(得分:0)

您没有更新id,因此它始终具有相同的值。

您应该在回调函数中更改其值,例如

if(data.aggiornamenti==1){
     //I'm assuming the latest update is the last in the array
    id = data.aggiornamenti[data.aggiornamenti.length -1].id;
}