我想使用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);
}
});
}
发生的事情是,如果我只是想发送传真,我会收到错误,因为电子邮件是空的。
我想使用一个函数而不是复制代码来获取不同的成功消息或错误。
我不知道如何使用相同的函数调用,并且取决于是传真还是电子邮件,具有单独的成功。有时,电子邮件将为空,有时传真将为空。
答案 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);
}
});
} }