В моем проекте есть плагин jQuery голос за. Я хочу иметь функцию голосования вверх и вниз, такую как переполнение стека, но я совершенно запутался в том, как передавать значения через вышеуказанную функцию плагина голосования вверх в мой файл php. Я попытался передать свой параметр id в Ajax, но получаю только идентификатор первой строки. Раньше я использовал обработчик событий по щелчку, чтобы я мог отслеживать, какая строка была нажата, но я не могу реализовать этот метод с этой функцией. Или кто-то может объяснить, как мне реализовать указанный выше плагин jQuery с php на моей странице.
Мой HTML в цикле php for:
$sample = $this->db->prepare("SELECT * from Ratings");
$sample->execute();
$RES = $sample->fetchAll(PDO::FETCH_ASSOC);
foreach ($RES as $data){
$upVote = $data['Upvote'];
$downvote = $data['Downvote'];
$counter = $data['Counter'];
echo '<tr>
<td>
<div value='.$id.' name = "id" class = "upvote upvoteForm upvote-serverfault">
<a class = "upvote">'.$upVote.'</a>
<span class = "count">'.$counter.'</span>
<a class = "downvote">'.$downvote.'</a>
<a class = "star"></a>
</td></tr>';
}
Моя функция jquery:
<script>
var callback = function(element) {
$.post(
"voting.php/",
{
id: $(".id").val(),
upvoted: $(".upvote").val(),
downvoted: $(".downvote").val(),
star: $(".star").val()
},
);
};
$('.upvoteForm').upvote({callback});
</script>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Проверьте Примеры инициализации в документации. метод обратного вызова получает объект, который содержит данные текущего проголосованного элемента. Не пытайтесь получить значения с помощью селекторов jQuery, используйте параметр element. И если я правильно понимаю документацию, вы даже можете полностью опустить объект данных, если сохраните структуру DOM и добавите атрибут data-id:
<div data-id = "'.$id.'" class = "upvote upvoteForm upvote-serverfault">
var callback = function(element) {
$.post(
"voting.php/",
// this object could probably be omitted
{
id: element.id,
upvoted: element.upvoted,
downvoted: element.downvoted,
star: element.star
},
);
};
$('.upvoteForm').upvote({callback: callback});
Примечание: я не тестировал это, нет гарантии, что это работает :-)