@AlexMax13 Нужно примерно так
1.Обновите таблицу product, для поля isbn измените тип данных на INT с длинной 11
ALTER TABLE `oc_product` CHANGE COLUMN `isbn` `isbn` INT(11) NOT NULL DEFAULT 0 COLLATE 'utf8_general_ci' AFTER `jan`;
2. Создайте метод в своем контроллере (вероятно product) метод setLike($product_id) который примет id товара и пошлет его в модель
3. в модели создайте метод updateLike($product_id) и таким запросом обновляется лайк при обращении к методу
public function updateLike($product_id) {
$this->db->query("UPDATE " . DB_PREFIX . "product SET isbn = (isbn + 1) WHERE product_id = '" . (int)$product_id . "'");
}
4. в верстке создайте кнопку
<button class="btn btn-default" onclick="addLike(_<?php echo $result['product_id']; ?>);">Like <i class="fa fa-heart"></i></button>
<span class="like_count"><?php echo $result['isbn']; ?></span>
5. в своем javascript (вероятно в common.js)
добавьте функцию addLike(product_id) которая будет срабатывать при клике на кнопку
function addLike (id) {
var product_id = id;
$.ajax({
url: 'index.php?route=product/product/setLike', //шлем id товара в метод для добавления лайка
type: 'post',
data: 'product_id=' + product_id,
dataType: 'json',
beforeSend: function () {
//чет делаете с кнопкой, отключаете возможно
},
complete: function () {
//чет делаете с кнопкой, Включаете возможно
},
success: function (json) {
$('.alert').remove();
if (json['success']) {
//Если ваш метод вернул текущее кол-во лайков, здесь нужно обновить кол-во лайков
$('#like_' + product_id).find('.like_count').html(json['count']);
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert(thrownError + '\r\n' + xhr.statusText + '\r\n' + xhr.responseText);
},
});
}
Ну как-то так...
Конечно нужно проработать логику в контроллере, а еще возможно для борьбы с накруткой делать это все только для зарегистрированных пользователей.. но тогда и отдельная таблица для хранения данных и связей нужна.