Доброго времени суток.
Пытаюсь реализовать систему рейтинга для статей на сайте. Статьи выводятся в цикле, и для каждой статьи есть своя кнопка "лайк". Делаю все это чудо на связке AJAX+PHP. Т.к статьи выводятся в цикле то что бы не городить дубли одного и того же скрипта на кнопку посадил onClik с вызовом функции, которая должна будет обработать запрос и присвоить рейтинг. Вот сам код:
$(".urlparam").click(function () {
var id = $(this).data('id');
$.ajax({
type: "POST",
url: "/like.php", // Обработчик
data: "id="+id,// Отправляем id
dataType: "html",
cache: false,
success: function(data) {
// Проверяем что ответил нам обработчик, если false значит пользователь уже голосовал. И выводим сообщение.
if (data == 'false')
{
alert('Вы уже голосовали!');
}
else
{
$(".likeborder").html(data); // Если пользователь не голосовал, то помещаем в параграф общее кол-во голосов.
}
}
25
});
});
переменную id в начале кода получаем из кнопки (передаем ид материала, к которому голосуем). После всех манипуляций скрипт в блоке с классом .likeborder выводит результат. Сам скрипт работает но есесн когда в цикле выводим записи то голосуем за запись номер 1 а рейтинг обновляется у всех потому что у всех у них есть блок с классом .likeborder.
Я думал реализовать данную проблему таким образом : в цикле к каждому классу присвоить ид статьи а в скрипте так же переопределить блок, в котором будет обновляться рейтинг. Но при попытке внести изменения в скрипт :
Было $(".likeborder").html(data); стало $(".likeborder"+id).html(data);
Скрипт не выводит новый рейтинг в блоке с классом likeborder"+id
Дела. alert(); - пишет что ид undefined. На сколько я понимаю ид так и не передался в аякс и не переопределил класс в котором будет выводится результат работы.
Вопрос - как мне передать ид записи и переопределить класс в котором будет выведен результат?
Прошу прощение за быдло-код - я не знаток к сожалению в JS , только начинаю изучать многое.
UPD: Ошибка, как оказалось была не в скрипте а в атрибут - он имел иное название и по этому скрипт отдавал undifined т.к он не видел значение атрибута.
var id = $(this).data('id'); изменил на var id = $(this).attr('data-numaid');