2010-08-05 152 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 
    } 
相关问题