Обработчик кнопки Like на jQuery. Как можно передать id публикации из php в javascript код?

Добрый день. Решил сделать на своем проекте кнопку аналог лайкам вконтакте для публикаций сайта, но сталкнулся с такой проблемой. Как можно передать id публикации из php в javascript код?
Или же как отследить id публикации, которую лайкнул пользователь, чтобы сделать запрос(+1 лайк) в базу данных и обновить счетчик лайков у данной публикации?
Имеется код на PHP с запросом количества лайков к каждой новости, осталось сделать саму кнопку "ставлю лайк". Спасибо.
  • Вопрос задан
  • 7278 просмотров
Решения вопроса 1
Anonym
@Anonym
Программирую немного )
Вот пример с jQuery:
<button data-id="1" class="like">Like post 1</button>
<button data-id="2" class="like">Like post 2</button>
<button data-id="3" class="like">Like post 3</button>

var sendLikeRequest = function(id) {
    // Send request to server
};
$(document).on('click', '.like', function(e) {
    e.preventDefault();
    sendLikeRequest($(this).data('id'));
})
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
Думаю, id публикации нужно передавать не в javascript, а в верстку. К примеру, можно корневому элементу публикации добавить атрибут data-pub-id=1, где 1 - id публикации. Далее, при нажатии кнопки Like искать корневой элемент лайкнутой публикации и читать атрибут `data-pub-id`.
Ответ написан
aen
@aen
Keep calm and 'use strict';
Кнопка
<button class="superbutton" data-id="0"></button>
Вместо 0 поставьте свой id.

Обработчик
$('.superbutton').on('click', function(e) {
     e.preventDefault();
     var id = $(this).data('id');
    $.post(path/to/action, { id: id }).done(function() {
         //код обработчика удачной отправки
    });
});

path/to/action - урл, куда надо отправить id
Ответ написан
Комментировать
@frees2
Примеры.
<span onclick="ytplayer.loadVideoById(\''.$videoId.'\', 0);history.pushState(null, null, \''.$videoId.'\');return false">


Можно внутри ссылки прописать, то есть и ссылка и значение будет передаваться.

------
<input  type="radio" name=",live5" value=",live5" onclick="openbox('box1');" >
Ответ написан
Можно просто
<a href="#" rel="1">
где rel = и есть ваш ID
Ответ написан
Комментировать
@Wolfak Автор вопроса
Я понимаю как можно передать id новости в HTML код. Меня интересует как это значение можно взять из кнопки на которую нажал пользователь и использовать в javascript коде.
Ответ написан
@Wolfak Автор вопроса
Как изменить значение числа в DIV блоке не обновляя страницу, а сразу же после нажатия на кнопку "мне нравится"? Спасибо за помощь.

Сейчас пытаюсь реализовать вот так
<script type="text/javascript">
var sendLikeRequest = function(id) {
    $.ajax({
    type: "POST",  
    url: "http://blabla/engine/functions/rating.php",  
    data: "text=" + id,
    success: function(html){
	if(html > 0) {
	// Сюда возвращается результат, поставил ли пользователь лайк или убрал его
	}
	}
})
};
$(document).on('click', '.like', function(e) {
    e.preventDefault();
    sendLikeRequest($(this).data('id'));
});
</script>
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы