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变量仅为登录的用户生成。