2016-06-16 9 views
1

Dies funktionierte gut mit dem ursprünglichen sweetalert, aber mit sweetalert2 läuft es nie die Funktion, meine Ajax-Daten neu zu laden.jQuery sweetalert2 funktioniert nicht

Kann jemand einen Fehler sehen?

  .on('click', '#saveRider', function (e) { 
      e.preventDefault(); 
      $.ajax({ 
       url: 'ajax/saveRiderClass.php', 
       dataType: 'JSON', 
       type: 'POST', 
       data: $('#addRidersForm').serialize(), 
       success: function (json) { 
        if (json && json.status && json.already_entered === false) { 
         swal({ 
           title: "Rider Saved and Classes Added!", 
           type: "success" 
          }, 
          function (isConfirm) { 
           if (isConfirm === true) { 
            $("#enteredRiders").load("ajax/getEnteredRiders.php"); 
            $("#uniqueRiders").load("ajax/getUniqueRiders.php"); 
            $("#totalRiders").load("ajax/getTotalEntries.php"); 
           } 
          }); 
        } 
        else if (json && json.status && json.already_entered === true) { 
         swal({ 
          title: "Rider already entered in that class", 
          type: "warning" 
         }); 
        } 
       } 
      }); 
     }) 

Antwort

3

Ich empfehle Ihnen, einen Blick auf die Migrationsanleitung von Sweetalert zu sweetalert2 zu werfen. Sweetalert2 verwendet keine Callbacks mehr, sondern verspricht stattdessen. Hier ist, wie Sie Ihren Code ändern sollte:

Sie können alle Details Migration here

EDIT finden. Ich nehme den ersten süßen Anruf, den du machst.

Dieser Aufruf:

swal({ 
     title: "Rider Saved and Classes Added!", 
     type: "success" 
     }.then(function() { 
      $("#enteredRiders").load("ajax/getEnteredRiders.php"); 
      $("#uniqueRiders").load("ajax/getUniqueRiders.php"); 
      $("#totalRiders").load("ajax/getTotalEntries.php"); 
     }); 

die Mitteilung .then, bevor die Sie verwenden Versprechen function()

Mit .then wie sweetaler2 statt Rückrufe erwartet:

swal({ 
     title: "Rider Saved and Classes Added!", 
     type: "success" 
     }, 
     function (isConfirm) { 
      if (isConfirm === true) { 
       $("#enteredRiders").load("ajax/getEnteredRiders.php"); 
       $("#uniqueRiders").load("ajax/getUniqueRiders.php"); 
       $("#totalRiders").load("ajax/getTotalEntries.php"); 
      } 
     }); 

so ähnlich werden sollte .

+0

Ich werde es erneut lesen. – indymx

+0

Ich habe ein Beispiel aus Ihrem Code hinzugefügt. Es sollte Ihnen helfen, den Unterschied zu sehen. – ChandlerBing42

+0

Ahh .. Ich habe den Migrationsleitfaden gelesen, habe aber keinen großen Unterschied gesehen. Ich werde es versuchen. – indymx