2016-04-06 3 views
0

Я делаю проект, и у меня проблема с window.open. Проблема заключается в том, что window.open не работает в моей схеме. Мне нужна помощь в этом,Открытие всплывающего окна на аякс-счете

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

так что я могу выполнить insertData(), не problem.but проблема лежит, когда executin windows.open внутри swal(). Я не вижу всплывающее окно всплывающего окна.

+0

Вы никогда не называют 'swal' везде. Не могли бы вы также показать нам, что делает эта функция? –

+0

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

+0

@MisterM полезно, спасибо! –

ответ

1

Это логика блокировки всплывающих окон в действии, которую используют браузеры. Вы должны прикрепить window.open непосредственно к событию onClick.

использовать что-то вроде этого:

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

На самом деле все они находятся внутри функции submitData(), а триггер -

+0

Вы должны использовать window.open непосредственно во время действия click , или, скорее всего, браузеры заблокируют его. Затем после успеха ajax вы можете просто изменить свое местоположение. –

+0

Хорошо, я буду помнить об этом ... спасибо –

Смежные вопросы