2010-08-05 200 views
0

我希望能夠顯示一條消息,如果用戶沒有登錄,如果他們嘗試通過點擊評級對用戶進行評級。有沒有辦法將它添加到我的JQuery代碼下面,或者我可以將它傳遞給我的PHP腳本?有沒有辦法檢查用戶是否使用JQuery登錄?

我正在使用PHP

這是JQuery代碼。

$('#rate li a').click(function(){ 
    $.ajax({ 
     type: "GET", 
     url: "http://localhost/update.php", 
     data: "rating="+$(this).text()+"&do=rate", 
     cache: false, 
     async: false, 
     success: function(result) { 
      // remove #ratelinks element to prevent another rate 
      $("#rate").remove(); 
      // get rating after click 
      getRating(); 
      getRatingAvg(); 
      getRatingText2(); 
      getRatingText(); 
     }, 
     error: function(result) { 
      alert("some error occured, please try again later"); 
     } 
    }); 

回答

0

在執行其他步驟之前,請將一些內容發回給jQuery,作爲result並檢查它。

+0

送東西從那裏回來?請原諒我的無知。 – jphp 2010-08-05 08:00:51

+0

請參閱Reigels的答案。他提供了一個更完整的答案。 – ZeissS 2010-08-05 09:57:22

0

如果用戶已經登錄,jQuery本身無法可靠地測試,但是如果用戶登錄或不登錄,那麼您的PHP請求可以發送答案。這個答案可以被檢查,然後顯示一個錯誤(或不)。

+0

我該怎麼做?一個例子會讓我朝正確的方向發展。 – jphp 2010-08-05 08:02:48

+0

PHP輸出一些東西,在成功函數中你可以測試結果是否是例如'錯誤'。 – alopix 2010-08-05 09:18:24

1

只需檢查是否有人登錄您的update.php腳本。如果沒有登錄,請回復類似「錯誤」的內容。

然後在成功處理程序,

success: function(result) { 
     if (!$.trim(result)==='error') { 
      // remove #ratelinks element to prevent another rate 
      $("#rate").remove(); 
      // get rating after click 
      getRating(); 
      getRatingAvg(); 
      getRatingText2(); 
      getRatingText(); 
     } else { 
      // not login, do something... 
      alert('login first please...'); 
     } 
    }, 
0

使用您的update.php腳本發回一個響應編纂,其中包括用戶是否登錄的確認;我假設腳本回聲一些值,然後在您的jQuery代碼片段中作爲結果變量接收。

if(result.loggedin == "1"){ //Assuming your output is a JSON object 

}else{ 

} 
0

在WordPress,你可以很容易地檢查以下代碼:

if(jQuery('body').hasClass('logged-in')) { 
// add your jquery code 
    } 
相關問題