Jquery 两美元一个功能。ajax成功

Jquery 两美元一个功能。ajax成功,jquery,Jquery,我想使用一个函数将数据发送到服务器 例如,用户单击电子邮件地址的复选框以通过电子邮件发送文档,然后单击“发送电子邮件”按钮调用sendemailfax()函数。但是,如果要传真文档,会出现一个弹出窗口,供用户选择传真号码,然后单击“发送传真”按钮,它还会调用sendemailfax()函数 function sendemailfax(url) { $.ajax({ type : 'POST', url : "sendDoc.php", dataTy

我想使用一个函数将数据发送到服务器

例如,用户单击电子邮件地址的复选框以通过电子邮件发送文档,然后单击“发送电子邮件”按钮调用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);
    }
 });
}
发生的事情是,如果我只想发送传真,我会收到错误,因为电子邮件是空的

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


我不知道如何使用同一个函数调用,并且根据是传真还是电子邮件来分别成功。有时电子邮件是空的,有时传真是空的。

创建两个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 
});

对邮件和传真发出两个单独的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
}); 

像这样试试

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   
    })

1.尝试在ajax调用外部初始化值

2.使用if条件检查电子邮件值或传真值是否为空

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

出于某种原因,仍然会收到一封电子邮件的弹出窗口。我正在检查服务器json_编码消息
    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);
                       }
        });
} }