изменение переменной внутри sweetalert

Я хочу изменить переменную в зависимости от того, нажимает ли пользователь ОК или нет при подтверждении. И затем я передаю переменную в код ajax.

По сути, это работает, когда я пишу ajax 3 раза (!) Внутри функции, как указано выше.

Я попытался сделать это проще, изменив переменную update_plan внутри swal, а затем запустив ajax вне swal, но swal не работает как обычное предупреждение, поскольку код продолжает работать и не останавливается, когда появляется предупреждение, а не к регулярным оповещениям, которые останавливают выполнение кода. Есть ли способ сделать это более эффективным?

var update_plan = 'no';

if($('#form_updated').val() == 'yes'){      

  swal({ 
    title: '',  
    text: "Do you want to save this plan for all future refills?",   
    type: "warning",   
    showCancelButton: true,   
    confirmButtonColor: "#39b54a",   
    confirmButtonText: "Yes, save it!",  
    animation: 'slide-from-bottom ', 
    closeOnConfirm: false
    }, 
    function(isConfirm){
      if(isConfirm){
        swal('Saved!','You have switched plans.', 'success');
        update_plan = 'yes';

        $.ajax({
          type: "POST",       
          url: "front_end_functions.php",       
          data: "function=save_client_data&cNumber="+cNumber+"&carrier="+carrier+"&plan="+plan+"&update_plan="+update_plan+"&random_2="+random_2,       
          success: function(msg){  
            if(msg == 'error2'){           
              swal('','We have detected a problem. Please try again later.', 'error');
              return false;        
            }else{                    
              var jsArray = JSON.stringify(msg);           
              $('#orange_bg').toggle('slow');           
              get_blue_div(jsArray);                 
            }        
          }
        });
      }else{

        $.ajax({
          type: "POST",       
          url: "front_end_functions.php",       
          data: "function=save_client_data&cNumber="+cNumber+"&carrier="+carrier+"&plan="+plan+"&update_plan="+update_plan+"&random_2="+random_2,       
          success: function(msg){  
            if(msg == 'error2'){           
              swal('','We have detected a problem. Please try again later.','error');
              return false;        
            }else{                    
              var jsArray = JSON.stringify(msg);           
              $('#orange_bg').toggle('slow');           
              get_blue_div(jsArray);                 
            }      
          } 
        });
      }  
  });

  }else{

    $.ajax({
    type: "POST",       
    url: "front_end_functions.php",       
    data: "function=save_client_data&cNumber="+cNumber+"&carrier="+carrier+"&plan="+plan+"&update_plan="+update_plan+"&random_2="+random_2,       
    success: function(msg){  
      if(msg == 'error2'){           
      swal('','We have detected a problem. Please try again later.','error');
      return false;        
      }else{                    
        var jsArray = JSON.stringify(msg);           
        $('#orange_bg').toggle('slow');           
        get_blue_div(jsArray);                 
      }      
    }
  });
}

person Ben    schedule 17.01.2016    source источник


Ответы (1)


Вам также нужно прочитать значение update_plan внутри обратного вызова.

Программа не останавливается в ожидании ответа от пользователя (как встроенный alert()).

person alex    schedule 17.01.2016