jQuery:ajax在另一个内部?聪明?

时间:2010-11-06 11:57:18

标签: javascript jquery ajax

我现在有这个ajax电话:

$.ajax({
    url: "misc/sendPM.php",
    type: "POST",
    data: data,

    success: function(stuff) {

        if (typeof stuff == "object") {
            var err = confirm(stuff.error);
            if (err) {
                alert('You pressed OK'); // MAKE AJAX CALL HERE HERE HERE HERE
            } else {
                $("#pmResponse").text("Mottagare saknas!").show().fadeOut(4500);
                $('#sendPM_btn').attr('disabled', false);
                $('#txt').attr('readonly', false);
                $('#title').attr('readonly', false);
            }
        } else {

            $(stuff).prependTo('#PrivateMessages').fadeIn(1000);
            $('#txt').val("");

            $("#pmResponse").text("Skickat!").show().fadeOut(4500);
            $('#sendPM_btn').attr('disabled', false);
            $('#txt').attr('readonly', false);
            $('#title').attr('readonly', false);
        }
    }
});

我正在制作一个“你的意思是?”如果用户未输入收件人的正确名称。 “你的意思是名字”来确认,所以你可以按OK或取消 - >再次键入新名称。

如果您现在按确定,则只会收到提醒(请参阅上面的代码)。但是当你按OK时我想要做的是改变'收件人'数据名称,并发回相同的数据。这可能吗?怎么样?

所以我现在正在做的结论是:

  

向sendPM.php发送请求   data,sendPM.php抓取数据,如果   它找到收件人的名字是   不清楚(例如,Megan F)然后它返回   JSON“错误”:你的意思是梅根   福克斯?,成功的$ .ajax抓住它,   并将其作为确认框。如果你   按确认框上的确定(如果您这样做)   意思是megan fox),然后它应该发送   回“Megan Fox”发送PM.php   所有以前的数据,   为了完全完成这个过程。

有更好的方法吗?

如果不是,我怎样才能将“megan fox”发送回sendPM.php以及之前的数据,以便完全完成整个过程?

1 个答案:

答案 0 :(得分:1)

将它们变成功能。

function sendRequest(data) {
    $.ajax({
        ...
        data: data
        success: process
    });
}

function process(stuff) {
    ...
    if(err && confirm("Did you mean " + stuff.suggestion + "?")) {
        sendRequest([make your new data here]);
    }
    ...        
}