Задать вопрос
pashadark
@pashadark
Учусь программировать на python

Как исправить код рейтинга чтоб он сохранялся после обновления страницы?

Добрый вечер! Подскажите пожалуйста как сделать чтоб после каждого обновления страницы рейтинг оставался.Стоит пока все на локальной машине.

$ipaddress = md5($_SERVER['REMOTE_ADDR']); // here I am taking IP as UniqueID but you can have user_id from Database or SESSION

$servername = "localhost"; // Server details
$username = "";
$password = "";
$dbname = "";


$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Unable to connect Server: " . $conn->connect_error);
}

if (isset($_POST['rate']) && !empty($_POST['rate'])) {

    $rate = $conn->real_escape_string($_POST['rate']);
// check if user has already rated
    $sql = "SELECT `id` FROM `tbl_rating` WHERE `user_id`='" . $ipaddress . "'";
    $result = $conn->query($sql);
    $row = $result->fetch_assoc();
    if ($result->num_rows > 0) {
        echo $row['id'];
    } else {

        $sql = "INSERT INTO `tbl_rating` ( `rate`, `user_id`) VALUES ('" . $rate . "', '" . $ipaddress . "'); ";
        if (mysqli_query($conn, $sql)) {
            echo "0";
        }
    }
}
$conn->close();
?>

А вот вставка в html:
<script>
                        $(document).ready(function () {
                            $("#demo1 .stars").click(function () {
                           
                                $.post('rating.php',{rate:$(this).val()},function(d){
                                    if(d>0)
                                    {
                                        alert('Ты уже голосовал');
                                    }else{
                                        alert('Спасибо за голос');
                                    }
                                });
                                $(this).attr("checked");
                            });
                        });
                    </script>
                    <fieldset id='demo1' class="rating">
                        <input class="stars" type="radio" id="star5" name="rating" value="5" />
                        <label class = "full" for="star5" title="Очень круто - 5 звезд"></label>
                        <input class="stars" type="radio" id="star4" name="rating" value="4" />
                        <label class = "full" for="star4" title="Pretty good - 4 stars"></label>
                        <input class="stars" type="radio" id="star3" name="rating" value="3" />
                        <label class = "full" for="star3" title="Meh - 3 stars"></label>
                        <input class="stars" type="radio" id="star2" name="rating" value="2" />
                        <label class = "full" for="star2" title="Kinda bad - 2 stars"></label>
                        <input class="stars" type="radio" id="star1" name="rating" value="1" />
                        <label class = "full" for="star1" title="Sucks big time - 1 star"></label>

                    </fieldset>

После каждого обновления страницы он их сохраняет и пишет что я голосовал. Но сами звезды остаются пустые.
А я бы хотел чтоб было показано что их (допустим 5)
Всем кто примет участи огромное спасибо. Я учусь. Для себя.
  • Вопрос задан
  • 231 просмотр
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
romy4
@romy4
Exception handler
ставишь человеку куки, что он голосовал
и при генерации страницы если есть куки от этого человека, кусок с голосовалкой не вставляешь, или какой-то другой вставляешь, например просто показать рейтинг
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы