2016-09-24 5 views
0

У меня есть форма для входа в систему, и я проверяю эту форму с помощью jQuery/Ajax и получаю ответ json.Как перенаправить страницу после проверки?

Эта форма вызова страницы PHP под названием add-data.php

Итак, когда все проверки будет сделано, то я хочу, чтобы перенаправить на другую страницу. После Successfully logged! текста:

if($msg['error'] === false) {   
    $msg[] = '<b>Successfully logged!.</b>';    
} 

Я использовал

setTimeout(function() { 
    window.location = <?php echo "\"{$site_url}\""; ?>       
}, 1000); 

, но это не перенаправлять!

код Полного перенаправления (не работает):

if($msg['error'] === false) {   
    $msg[] = '<b>Successfully logged!.</b>';    
    ?> 
    <script type="text/javascript"> 
    setTimeout(function() { 
       window.location = <?php echo "\"{$site_url}\""; ?>       
      }, 1000); 
    </script> 
    <?php 
} 

Update:

$("#add_data").submit(function(e) {   
    e.preventDefault(); 
    var button_name = $("#button_name").val(); 
    var formData = new FormData(this); 
    $.ajax({ 
     url : url+'add-data', 
     data : formData, 
     dataType : 'json', 
     type : 'POST', 
     cache:false, 
     contentType: false, 
     processData: false, 
     beforeSend : function() { 
      $("#submit_button").val("Loading..."); 
      $("#submit_button").prop('disabled', true); 
      $('#form_result').show(); 
     }, 
     success : function (result) { 
      $("#submit_button").val(button_name); 
      $('#form_result').html('');      
      $("#submit_button").prop('disabled', false); 
      $.each(result, function(key, value) { 
       if(key !== 'error' && result.error == true ) { 
        $('#form_result').append('<div class="alert alert-danger">'+value+'</alert>'); 
       } else if (key !== 'error' && result.error == false) { 
        $('#form_result').append('<div class="alert alert-success">'+value+'</p>'); 
        $('#form_result').delay(3000).hide('slow'); 
        $("#submit_button").val(button_name);      
        $("#submit_button").prop('disabled', true); 
       }       
      });     
     }, 
     error: function(xhr, textStatus, errorThrown) { 
      $('#form_result').append('<p class="alert alert-danger">Somethig is wrong!</p>'); 
      return false; 
     }, 
    }); 
}); 
+0

Это поможет, если вы сказали нам, что сообщение об ошибке было. –

+0

На самом деле это показывает мне ... мое сообщение об ошибке. Это как-то не перенаправляет! –

+0

Где вы разместили этот скрипт 'setTimeout', находится ли он в нижней части страницы. – Sasikumar

ответ

-1

Учитывая, что логика в части работ success:, вы должны справиться с этим, как это:

} else if (key !== 'error' && result.error == false) { 
       $('#form_result').append('<div class="alert alert-success">'+value+'</p>'); 
       $('#form_result').delay(3000).hide('slow'); 
       $("#submit_button").val(button_name);      
       $("#submit_button").prop('disabled', true); 
       window.location.replace("http://theredirectpage.com"); 
      }  

Если вам нужно переделать ЭСТ к URL, порожденного файла PHP, вы должны вернуть его в результирующий массив, а затем вставить значение в переадресации вызова, что-то вроде этого:

window.location.replace(result.redirectUrl); 

Надежда, что помогает

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