2016-04-06 12 views
0

Ich mache ein Projekt und ich habe ein Problem mit window.open. Das Problem ist window.open funktioniert nicht in meinem Schema. Ich brauche eine Hilfe zu diesem Thema,Öffnen einer Seite Popup auf Ajax Erfolg

swal({ 
    title: "Submit Data ?", 
    text: "Process only if you are sure", 
    type: "warning", 
    showCancelButton: true, 
    confirmButtonColor: "#DD6B55", 
    confirmButtonText: "Yes, Submit!", 
    cancelButtonText: "No, Cancel!", 
    closeOnConfirm: false, 
    closeOnCancel: false 
}, 
function(isConfirm){ 
    if (isConfirm) { 
     insertData(); 
     swal("SUCCESS", "Data Has Been Submitted", "success"); 
     window.open("http://188.109.156.21/execution.php?str=james"); 
    } else { 
     swal("CANCELLED", "", "error"); 
    } 
}); 

function insertData(){ 
    $.ajax({ 
     type: 'POST', 
     url: "../../../html/main/divpages/submit_data.php", 
     data: sentReq, 
     dataType: 'JSON', 
     success: function (response, textStatus, jqXHR) { 
      if (response.indexOf("GAGAL") == -1) { 
       window.location.href = "main.php"; 
      } else { 
       alert("GAGAL INSERT"); 
      } 
     } 
    }); 
} 

, so kann ich ausführen insert() ohne problem.but das Problem liegt, wenn sie innerhalb SwaI windows.open executin(). Ich sehe kein Fenster Popup öffnet sich.

+0

Sie nie 'nennen überall swal'. Könnten Sie uns bitte auch zeigen, was diese Funktion macht? –

+0

@MatthewHerbst http://t4t5.github.io/sweetalert/ –

+0

@MisterM hilfreich, danke! –

Antwort

1

Es ist die Popup-blockierende Logik in Aktion, die Browser verwenden. Sie müssen window.open direkt am onClick-Ereignis anhängen.

Verwendung so etwas wie dieses:

var checkSuccess = false; 

$('#button').on("click", function(){ 
    $.ajax({ 
     type: 'POST', 
     url: "your url", 
     async:false, 
     success: function(){ 
     checkSuccess = true; 
     //YOUR LOGIC 
     } 
    }); 
    if(checkSuccess){ 
     window.open("http://188.109.156.21/execution.php?str=james"); 
    } 
}) 
+0

Nun eigentlich alle diese sind in einer Funktion sendData() und der Trigger ist SUBMIT –

+0

Sie müssen window.open direkt während der Klick-Aktion verwenden , oder wahrscheinlich werden Browser es blockieren. Nach einem Ajax-Erfolg können Sie einfach seinen Standort ändern. –

+0

okay, ich werde das im Hinterkopf behalten ... danke –

Verwandte Themen