Я пытаюсь сделать систему похожей на систему «нравится / не нравится».У меня все настроено, но моя функция jquery.ajax не отправляет данные, которые мне нужны.Функция вызывается, но данные не устанавливаются.
Я добавил функцию, чтобы проверить, вызывается ли isset if оператор, но эта функция не вызывается, поэтому я знаю,что-то не так с функцией ajax.Я пытался просмотреть другие сообщения с похожими проблемами, но ни одно из этих решений не помогло.Извините, если это просто глупость, а решение простое.
PHP - community.php - главная веб-страница
<div id="entries">
<?php foreach($posts as $post): ?>
<div class="entry">
<div class="entryInfo">
<img src="IMAGES/PlaceholderAlbumCover.jpg" alt="Album Cover" class="center" height="200" width="200">
<div class="artistInfo">
<h4><?php echo $post['name'] ?></h4>
<p> <?php echo $post['artist'] ?> </p>
</div>
<div class="votes">
<i <?php if(userVoted($post['id'])): ?>
class="fas fa-heart vote-btn"
<?php else: ?>
class="far fa-heart vote-btn"
<?php endif ?>
data-id="<?php echo $post['id'] ?>" style="color:#f44242">
</i>
<span class="voteCount"><?php echo getVotes($post['id']); ?></span>
</div>
</div>
</div>
<?php endforeach ?>
</div>
Javascript - voice.js - обрабатывает обнаружение и отправку кликовответ на voice.php
$.ajax({
url: 'index.php?page=community',
method:'post',
data: {
'action':action,
'post_id':post_id
},
success: function(data) {
if(action == 'unvote') {
$click_btn.toggleClass('far fas');
} else if(action == 'vote') {
$click_btn.toggleClass('far fas');
}
}
});
PHP - voice.php - обрабатывает серверную часть системы
if(isset($_POST['action'])) {
consoleLog();
$post_id = $_POST['id'];
$action = $_POST['action'];
switch($action) {
case 'vote':
$query="INSERT INTO rating_info (user_id, post_id, rating_action)
VALUES ($user_id, $post_id, 'vote')
ON DUPLICATE KEY UPDATE rating_action='vote'";
break;
case 'unvote':
$query="DELETE FROM rating_info WHERE user_id=$user_id AND post_id=$post_id";
break;
default:
break;
}
mysqli_query($dbconnect, $query);
echo getRating($post_id);
exit(0);
}
То, что он должен сделать, это увеличить или уменьшить счетчик голосов вбазу данных mysql, указав действие для голосования или отмены голосования, но файл js просто никогда не устанавливает данные действия, или сценарий PHP никогда не сможет их перехватить.