2017-04-15 52 views
0

檢查用戶是否已登錄,如果用戶已登錄警報並感謝評級,並且如果不提醒登錄以進行評分檢查用戶是否使用JQuery評級進行登錄,並提醒您必須登錄否

<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> 

此查詢使用此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')); 
    } 
    } 

?> 
+0

在你的PHP,你應該返回它們的狀態,而不是你的''0'''''''失敗''''''你必須登錄到速率''。即。 ''echo'json_encode(array(「status」=>「active」);'/'echo json_encode(array(「status」=>「inactive」);'。然後在你的$ .post():: success'中,檢查狀態,即「if(d.status =='active'){//說謝謝,並檢查評級} else if(d.status =='inactive'){//告訴他們先登錄}' – Sean

+0

@Sean你好,謝謝你的回覆,但是我要在哪裏回顯json_encode(array ...的狀態在? –

+0

@Sean我編輯了這篇文章並添加了你爲我推薦的內容,但它仍然是沒有工作是否有其他方式我可以處理這個問題? –

回答

0

rate.php:

迴響在jQuery的後兩地

echo json_encode(array('status'=>'active')); 

的JSON編碼數組: 刪除d.trim(status)而不是做

d.status && d.status == 'active' 
+0

我解析了json對象並更新了我的答案,它仍然無法正常工作,我非常感謝你的幫助。 –

+0

哪些用戶是您正在嘗試?已登錄且已經評分或已登錄但尚未評分的那個? –

+0

我正在嘗試e沒有登錄但正在嘗試評分。 –