2017-03-24 15 views
0

我有一個圖像的PHP腳本,當你點擊它時,你被重定向到另一個頁面。基於ajax的價值終止或停止

我也有一個ajax/jquery檢查,看看你是否登錄或不。

所以,當有人點擊鏈接時,ajax會發現他們是否已經登錄,如果沒有,他們會得到一個警告框。

我的鏈接有ID =「newlisting」

$("#newlisting").click(function() { 
     $.post("ajaxqueries.php", {"checkloggedin": ''}, function(data) { 
     var loggedin = data; 
     if (loggedin == 0) { 
      alert('Please login or register to use this feature'); 
     } 
     }); 
    }); 

的問題是,當他們點擊的警告框,它繼續屏幕,如果你是登錄狀態。

我需要php腳本退出,如果他們得到警報框並點擊確定。

任何幫助,將不勝感激。

+2

使用'preventDefault()'首先防止「正常」鏈接行爲。然後,你將能夠通過console.log Ajax返回的'data'來檢查它是否符合你的條件。 –

+0

另一種方法是在用戶登錄時(在服務器端)設置會話變量...因此,在鏈接所針對的頁面中,如果不是,則可以檢查該變量並將其重定向到主頁。它會更「安全」。 –

+1

我同意@LouysPatriceBessette。通過將其移動到服務器,人們無法修改您的JavaScript以將自己帶到登錄頁面。有人甚至可以將鏈接本身複製並粘貼到瀏覽器中。 – SergeantHacker

回答

1

您需要防止重定向。

$("#newlisting").click(function(event) { 
     event.preventDefault(); 
     $.post("ajaxqueries.php", {"checkloggedin": ''}, function(data) { 
     var loggedin = data; 
     if (loggedin == 0) { 
      alert('Please login or register to use this feature'); 
     }else{ 
      // Redirect code goes here. 
     } 
     }); 
    }); 
+0

你是非常正確的。 – mkaatman

+0

更好......;)但是,你不應該也建議重定向的方式嗎? –

+0

我改變它包括防止默認,並阻止它繼續前進。但它也可以防止用戶登錄時的重定向。我想我可以使用else語句進行重定向,但是如果我想在各種頁面上使用相同的代碼或重定向到同一位置,則需要多個頁面的腳本每時每刻。 – user1970839