Javascript 检查用户是否以JQuery评级登录,如果不是,则提醒您必须登录

Javascript 检查用户是否以JQuery评级登录,如果不是,则提醒您必须登录,javascript,php,jquery,sql,Javascript,Php,Jquery,Sql,检查用户是否已登录,用户是否已登录警报并感谢评级,如果未登录警报并请登录评级 <script> $(document).ready(function () { $("#demo2 .stars").click(function () { $.post( "rate.php",{rate:$(this).val(), vid_id : $vid_result['vid_id']}, function(d) { console.l

检查用户是否已登录,用户是否已登录警报并感谢评级,如果未登录警报并请登录评级

<script>
$(document).ready(function () {
   $("#demo2 .stars").click(function ()  {

        $.post( "rate.php",{rate:$(this).val(), vid_id : 
       $vid_result['vid_id']}, function(d) {
        console.log(d);
        //JSON.parse(d);

         if(d.status && d.trim(status) == 'active'){

          alert('Thanks For Rating');

          }
          else if(d.status && d.trim(status) == 'inactive'){

          alert('You have to be logged in to rate'); 

         }

        },"json");
      });
    });
 </script>

$(文档).ready(函数(){
$(“#demo2.stars”)。单击(函数(){
$.post(“rate.php”,{rate:$(this.val()),vid_id:
$vid_result['vid_id']},函数(d){
控制台日志(d);
//JSON.parse(d);
如果(d.status&&d.trim(status)=‘active’){
警惕(“感谢评级”);
}
否则,如果(d.status&&d.trim(status)=“inactive”){
警报(“您必须登录才能进行评级”);
}
}“json”);
});
});
此查询使用以下php命令来提醒用户他/她已成功评级。我只在用户使用PHP登录时插入评级,而在用户未登录时不插入评级。但是,如何修复JQuery以根据用户是否登录向用户发出相应的消息

 // this page is rate.php

 <?php

  include 'core/init.php'; 

 if (isset($_POST['rate']) && !empty($_POST['rate'])) {
  if(isset($session_user_id)){
  $rate = sanitize($_POST['rate']);
   $vidid = sanitize($_POST['vid_id']);
 // check if user has already rated
   $sql = "SELECT `id` FROM `rating` WHERE `rater_id`='" . 
  $session_user_id."' AND  `video_id` = '".$vidid."'";
  $result = $conn->query($sql);
  $row = $result->fetch_assoc();
  if ($result->num_rows > 0) {

     $sql = "UPDATE rating SET `rate` = '$rate' WHERE `rater_id`='" . $session_user_id . "' AND `video_id` = '".$vidid."'";
      if (mysqli_query($conn, $sql)) {        }
    echo $row['id'];
} else {

    $sql = "INSERT INTO `rating` (`video_id`, `rater_id`, `rate`) VALUES ('$vidid' ,'$session_user_id', '$rate')";
    if (mysqli_query($conn, $sql)) {
     //success
    json_encode(array('status'=>'active'));
    }else
    echo "fail";
}
}else{
     //not logged in
     json_encode(array('status'=>'inactive'));
  }
  }

?>
//此页面是rate.php
rate.php:

在两个位置回显json编码的数组

echo json_encode(array('status'=>'active'));
在jquery帖子中: 拆下
d.修剪(状态)
改为

d.status && d.status == 'active'

在php中,您应该返回它们的状态,而不是您的
“0”
/
“fail”
/
“您必须登录才能评级”
。然后在你的
$.post():success
中,检查状态,即如果(d.status=='active'){//说谢谢,检查评级}否则如果(d.status='inactive'){//告诉他们先登录}
@Sean Hi感谢您的回复,但是我需要在哪里回显json_编码(数组…状态为?@Sean我已经编辑了帖子并添加了你推荐给我的内容,但是仍然不起作用。我还有其他方法可以解决这个问题吗?你忘了解析json对象。我已经解析json对象并更新了我的答案,它仍然不起作用,我非常感谢你的帮助。你在尝试哪个用户已登录并已评级的ne或已登录但未评级的ne?我正在尝试未登录但正在尝试评级的ne。您是否已将正确的地址包含到php文件中,请求是否已到达?关于isset tho的一件事,如果您已声明$session\u user\u id变量,即使其为空或者没有用户id,它仍将计算为true。您应该确保$session\u user\u id变量仅为登录的用户生成。