2016-09-24 148 views
0

我有一個登錄表單,我使用jQuery/Ajax驗證此表單並獲取json響應。驗證完成後如何重定向頁面?

這種形式的調用稱爲add-data.php

所以,當所有的驗證完成,然後我想重定向到另一個頁面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 
} 

更新:

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

如果您需要更改ECT由php文件,你應該在你的結果數組的形式返回,然後該值插入重定向呼叫,像這樣生成的網址:

window.location.replace(result.redirectUrl); 

希望幫助

相關問題