2017-02-15 2 views
3

Ich möchte 2 E-Mails mit verschiedenen Vorlagen für verschiedene Empfänger auslösen. Ich war müde, um eine weitere URL neben URL hinzuzufügen :, aber es hat nicht funktioniert. Gibt es eine Möglichkeit, mehr als einen E-Mail-Anhang zu einer Ajax-Anfrage hinzuzufügen? Ihr Rat wird sehr geschätzt.Senden Sie eine Ajax-Anfrage für mehrere URLs

Dank
$.ajax({ 
    type: "POST", 
    url: "../wp-admin/emailer.php","../wp-admin/emailer2.php" // add more emailers 
    data: dataString, 
    success: function(){ return true;} 
}); 
window.location.href = "thank-you"; 
+7

Sie können nicht tun, dass – Satpal

Antwort

1

Sie können nicht tun, becuase eine einzige Anfrage AJAX kann nur eine URL sprechen, aber Sie können für verschiedene URLs mehr AJAX-Anforderungen erstellen, und sie werden gleichzeitig ihre Arbeit tun - Sie würden nicht brauchen warten, bis einer abgeschlossen ist, bevor der nächste abgefeuert wird. Also in diesem Fall müssen Sie eine array, wo Sie alle behalten die urls.Then Sie benötigen $.each und die beiden Parameter Form $.ajax ist

var urls = ['/url/one','/url/two', ....]; 

$.each(urls, function(i,u){ 
    $.ajax(u, 
     { type: "POST", 
     data: dataString; 
     success: function(){ 
      return true; 
     } 
     } 
    ); 
}); 
window.location.href = "thank-you"; 
} 
1

Kann $.when() verwenden, nachdem mehrere Anfragen zu feuern Erfolg:

var req1 = $.post("../wp-admin/emailer.php", dataString); 
var req2 = $.post("../wp-admin/emailer2.php", dataString); 

$.when(req1,req2).then(function(){ 
    // all requests succeeded 
    window.location.href = "thank-you"; 
}).fail(function(){ 
    // oops, something went wrong with at least one of the requests 
}) 
-1

Verwendung Dieser Methoden Multiple URl mitb Daten abrufen .... Es ist auch für zukünftigen Anruf oder dynamischen Anruf in jedem wo in Ihrem Code hilft

function sendMyAjax(URLAdd,dataString){ 
    $.ajax({ 
     type: "POST", 
     url: URLAdd 
     data: dataString, 
     success: function(){ return true;} 
     }); 
    window.location.href = "thank-you"; 
    } 
}; 

sendMyAjax("../wp-admin/emailer.php","DataString"); 
sendMyAjax("../wp-admin/emailer.php","DataString"); 

Sie können Array für die Shop-URL und Daten

+1

Umleitung wird aufgerufen, sofort die erste Mal Methode aufgerufen wird und die zweiter wird nicht einmal eine Chance hat, genannt zu werden gesendet – charlietfl

0

Wenn Sie den Rückruf für jede E-Mail behandeln wollen und bestimmte Verwendung haben Sie weniger als 100 E-Mails, nur Rekursion Eg zeigen einen Dank wenn alle verwenden kann die E-Mails wurden erfolgreich

var urls=["url1","url2","url3","url4"]; 
var done=true; 
function sendEmails(){ 

    if(urls.length==0 && done){ 
     alert("All emails sent successfully"); 
     return true; 
    }else if(urls.length>0 && !done){ 
     alert("There was an error"); 
     return true; 
    } 
    else{ 
     var url=urls.pop(); 
     $.ajax({ 
      type: "POST", 
      url: url, 
      data: dataString, 
      success: function(){ 
       sendEmails() 
      }, 
      error:function(){ 
       done=false; 
       sendEmails(); 
      } 
     }); 
    } 
} 
sendEmails(); 
Verwandte Themen