javascript - 在添加新星级之前重置 JQuery 星级

标签 javascript jquery html css rating

我已经在 J​​query 中为我的网站实现了评级。 目前,如果评分为 4,且同一用户添加评分为 3,则评分数据库中将保存值 7。 所以基本上我只想重置以前的评级并在数据库和网页中添加当前评级(3)。

我怎样才能实现这个目标?

代码:

<li onmouseover="highlightStar(this,'rating');" onmouseout="removeHighlight();" onClick="addRating(this,'rating');">&#9733;</li>
  <li onmouseover="highlightStar(this,'rating');" onmouseout="removeHighlight();" onClick="addRating(this,'rating');">&#9733;</li>
  <li onmouseover="highlightStar(this,'rating');" onmouseout="removeHighlight();" onClick="addRating(this,'rating');">&#9733;</li>
  <li onmouseover="highlightStar(this,'rating');" onmouseout="removeHighlight();" onClick="addRating(this,'rating');">&#9733;</li>
  <li onmouseover="highlightStar(this,'rating');" onmouseout="removeHighlight();" onClick="addRating(this,'rating');">&#9733;</li>

JQuery:

function addRating(obj) {

    $('li').each(function(index) {
        $(this).addClass('selected');
        $('#rating').val((index+1));
        if(index == $("li").index(obj)) {
            return false;   
        }
    });
}

MySQL PHP 代码:

if( empty($_POST)){

    }else if(strlen($_POST['currentReview']) >0 ){

        $currentReview = $_POST['currentReview'];
        $rating1 = intval($_POST['rating']) ;
        echo $rating1;
        $select_rating = "Select * from ratings where product_id = ". $product_id . "AND user_id = " .$user_id ;
        if(!($result =  mysql_query($select_rating, $databaseObj))){
            print("Couldn't execute select_rating");
            print $select_rating;
            die("My SQL error while inserting record");
    } else{
        echo "RATINGS::::::" ;
        $row = mysql_fetch_row($result);
        print_r($row);
    }
        //print "Rating  value is $rating1  Char value : $_POST['rating'] </br>";
        $insert_query = "INSERT INTO ratings (product_id,site_id,user_id,rating, review) VALUES ($product_id,$site_id,$user_id,$rating1,\"$currentReview\")  ON DUPLICATE KEY UPDATE review = \"$currentReview\",rating=$rating1;";

    }
    if(!($result =  mysql_query($insert_query, $databaseObj))){
            print("Couldn't execute insert_query");
            print $insert_query;
            die("My SQL error while inserting record");
    }

最佳答案

检查用户的数据库,如果有结果,则更新而不是插入

if (mysql_query("SELECT rating FROM ratings WHERE user_id = $user_id", $databaseObj)) {
   $insert_query =" UPDATE ratings SET rate = $rating1 WHERE user_id = $user_id";
 } 

关于javascript - 在添加新星级之前重置 JQuery 星级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33880753/

相关文章:

html - 删除元素的边距 "li"

javascript - JS 将事件附加到浏览器停止按钮

javascript - 包含空格作为可接受的输出字符

javascript - 如何通过ajax发送2个选择框动态生成的值以获取第3个选择框值

具有不同输入 ID 的 jQuery 多重自动完成

javascript - 比较 JavaScript 和 AngularJS?

javascript - .onchange 没有始终如一地获取输入的更改

javascript - 传递 ReactElement 和返回 ReactElement 的函数之间的区别

javascript - 使用 JavaScript 检测用户存在

javascript - jQuery ajax 发布数据以形成邮件