2013-02-03 240 views
3

我在這裏有一個接受用戶憑證的表單。如果用戶具有無效的用戶憑據,則頁面將不會加載,但是如果他或她具有有效的憑據我希望頁面可以完成整頁刷新,我將如何實現該功能?我曾嘗試添加。JQuery Ajax Force頁面刷新

window.location.href = window.location.href; 

在響應html但它沒有工作,它似乎像jquery是刪除腳本代碼?

這裏是表單提交的AJAX。

$('body').on('submit', '#sign-in', function(e) { 
    e.preventDefault(); 

    var data = $(this).serialize(); 

    var url = $(this).attr('action'); 
    $.ajax({ 
     //this is the php file that processes the data and send mail 
     url : url, 
     type : "POST", 
     data : data, 
     //Do not cache the page 
     cache : false, 
     //success 
     success : function(data) { 
      alert(data); 
      $('#loginModal').html($(data).find('#loginModal').html()); 
     } 
    }); 
}) 

如果用戶具有有效憑證從成功的響應應該是這樣

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
<script> 
    window.location.href = window.location.href; 

</script> 
</head> 

但頁面不重裝。

回答

0

看看你是否能在成功功能

使用此代碼在收到有效的響應(如1)

$(document).attr('location').href='your location' 
+0

我會在哪裏插入該代碼?成功功能裏面?或在已被回覆的HTML? – user962206

+0

在檢查php 的響應之後,成功函數在php中,您可以在每次成功登錄時輸入1,在每次輸入失敗時輸入0。 – TranQ

3

在成功的功能,你可以使用JavaScript的方式來加載:

location.reload(); 

有點像這樣

$('body').on('submit', '#sign-in', function(e) { 
    e.preventDefault(); 

    var data = $(this).serialize(); 

    var url = $(this).attr('action'); 
    $.ajax({ 
     //this is the php file that processes the data and send mail 
     url : url, 
     type : "POST", 
     data : data, 
     //Do not cache the page 
     cache : false, 
     //login success 
     success : function(data) { 
      //... your other code 
      location.reload(); //reload the page on the success 
     } 
    }); 
}) 

這意味着當登錄失敗時,您的查詢會出現錯誤,因此它不會進入您的成功功能。

+0

但如果用戶輸入無效頁面將重新加載。只有當用戶插入有效憑證時才需要重新加載頁面 – user962206

+0

那就是爲什麼我說成功功能 –

+0

即使用戶插入無效憑證,成功仍然會運行。它會返回不同的HTML數據。所以無論成功還是失效無效仍將運行 – user962206