vadim_voron
@vadim_voron
фрилансер

Как присвоить значение переменной для блока с выводом результата ajax?

Доброго времени суток.

Пытаюсь реализовать систему рейтинга для статей на сайте. Статьи выводятся в цикле, и для каждой статьи есть своя кнопка "лайк". Делаю все это чудо на связке 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');
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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