两个$ .ajax成功的一个功能

时间:2014-01-03 05:39:48

标签: jquery

我想使用One函数将数据发送到服务器。

例如,用户单击电子邮件地址的复选框以通过电子邮件发送文档,并单击其上调用sendemailfax()函数的“发送电子邮件”按钮。但是,如果您要传真文件,则会出现一个弹出窗口供用户选择传真号码并单击“发送传真”按钮,它也会调用sendemailfax()函数。

 function sendemailfax(url)
{
    $.ajax({
    type    : 'POST',
    url     : "sendDoc.php",
    dataType: 'json',
    data    : { emailAddresses: emails, faxNumbers: getFaxNumbers(), url: url, lname: lname,   fname: fname }, // Data to be sent
    success: function(data){
       if( data.success )
        {
            alert("Email/Fax sent successfully");
        }
        else
        {
           alert("There was a mistake, try again");
        }
     },

    error: function(req, status, error) {
       console.log( 'something went wrong', status, err);
    }
 });
}

发生的事情是,如果我只是想发送传真,我会收到错误,因为电子邮件是空的。

我想使用一个函数而不是复制代码来获取不同的成功消息或错误。

我不知道如何使用相同的函数调用,并且取决于是传真还是电子邮件,具有单独的成功。有时,电子邮件将为空,有时传真将为空。

4 个答案:

答案 0 :(得分:0)

创建两个javascript函数并针对您的ajax回调调用它们。

function funcSuccess(data) {
    console.log(data);
    if( data.success ) {
        alert("Email/Fax sent successfully");
    } else {
        alert("There was a mistake, try again");
    }
}

function funcError( req, status, error ) {
    console.log( 'something went wrong', status, err);
}

在你的ajax中

$.ajax({
    type    : 'POST',
    url     : "sendDoc.php",
    dataType: 'json',
    data    : { 
        emailAddresses: emails, 
        faxNumbers: getFaxNumbers(), 
        url: url, 
        lname: lname,   
        fname: fname 
    }, // Data to be sent

    // here are the two functions
    success: funcSuccess, 
    error: funcError 
});

答案 1 :(得分:0)

为邮件和传真提出两个单独的ajax请求。

$.ajax({
    type    : 'POST',
    url     : "sendDoc.php",
    dataType: 'json',
    data    : { 
                 emailAddresses: emails, 
                 url: url, 
                 lname: lname,   
                 fname: fname 
    }, // Data to be sent
    success: EmailSuccess,
    error: EmailError
}); 

$.ajax({
    type    : 'POST',
    url     : "sendDoc.php",
    dataType: 'json',
    data    : { 
                 faxNumbers: getFaxNumbers(), 
                 url: url, 
                 lname: lname,   
                 fname: fname 
    }, // Data to be sent
    success: faxSuccess,
    error: faxError
});

答案 2 :(得分:0)

试试这个

function sendemailfax(url,paramData,successCallback,failureCallback)
{
    $.ajax({
    type    : 'POST',
    url     : "sendDoc.php",
    dataType: 'json',
    data    : paramData, // Data to be sent
    success: function(data){
       if($.isFunction(successCallback)){successCallback(data);}
     },

    error: function(req, status, error) {
       if($.isFunction(failureCallback)){failureCallback(req, status, error);}
    }
 });
}

如何使用

    function postData("sendDoc.php",{ emailAddresses: emails, faxNumbers: getFaxNumbers(), url: url, lname: lname,   fname: fname },
    function(data){
     //on success
},function(req, status, error){
     //on error   
    })

答案 3 :(得分:0)

1.尝试初始化ajax调用的值。

2.如果条件检查电子邮件值或传真值是否为空,请使用。

    function sendemailfax(url)
             {
                var fax_no=getFaxNumbers();//initialize the fax number here*
           if(emails=="")
              { 
                emails=0;
              }

           if(fax_no=="")
              {
                fax_no=0;
              }
           else{

               $.ajax({
               type    : 'POST',
               url     : "sendDoc.php",
               dataType: 'json',
               data    : { emailAddresses: emails, faxNumbers: fax_no,
                           url: url, lname: lname,   fname: fname }, // Data to be sent

               success : function(data){

                        if( data.success )
                           {
                               alert("Email/Fax sent successfully");
                           }

                        else
                           {
                                alert("There was a mistake, try again");
                           }
                       },

              error: function(req, status, error) {
                              console.log( 'something went wrong', status, err);
                       }
        });
} }