Привет всем! Вопрос в заголовке. Т. е. чтобы появился последний суммарный результат, нужно обновить страницу БД (и тогда в БД увижу новый результат) и саму страницу кнопки like (и здесь появится последний суммарный результат: +1 к предыдущему, т. е. каждый клик по кнопке). Ведь результат должен появляться без перезагрузки страницы сайта и страницы БД. Помогите, кто может?! :)
Привожу пример для кнопки: Like.
index.php
// Счётчик кликов с сохранением в БД
require_once('counter.php'); // обработчик кнопок Like / DisLike
$dsn = "mysql:host=localhost;port=3306;dbname=название БД;charset=utf8";
$pdo = new PDO($dsn, 'имя пользователя БД', 'password', $опционально);
$statement = $pdo->query("SELECT `value` FROM counterLike WHERE `idLike` = 1");
$like = (int)$statement->fetchColumn();
Дальше форма HTML ................. не существенно, т.к. не в ней проблема.
main.js
// Клик по кнопке Like
$(document).ready(function() {
var linklike = $("#btnLike"),
counterlike = $("#like_count"),
countlike = 0;
// Блок - Лайк ( Like )
linklike.on('click', function(e) {
e.preventDefault();
var ajax = $.ajax({
method: 'post',
url: 'https://site.php/counter.php',
dataType: 'text',
data: {
'countlike': 1
}
});
ajax.done(function(data) {
data = JSON.parse(data);
counterlike.html(parseInt(data));
});
});
});
counter.php
declare(strict_types=1);
error_reporting(E_ALL);
// конфигурация БД
$servername = 'localhost';
$dbname = 'название БД';
$database = 'имя пользователя БД';
$password = 'password';
$dsn = "mysql:host=localhost;port=3306;dbname=название БД;charset=utf8";
try {
$pdo = new PDO($dsn, 'имя пользователя БД', 'password', $опционально);
// Для таблице counterLike
if (isset($_POST['countlike']) && (int)$_POST['countlike'] === 1) {
$stmt = $pdo->query("SELECT `value` FROM counterLike WHERE `idLike` = 1"); // Для Like
$like = (int)$stmt->fetchColumn();
$like++;
$paramsLike = [
':id' => 1,
':value' => $like
];
$query = "UPDATE `counterLike` SET `value` = :value WHERE `idLike` = :id";
$stmt = $pdo->prepare($query);
$stmt->execute($paramsLike);
echo json_encode($like);
}
} catch (Exception $e) {
echo $e->getMessage();
}
И вот последний результат SQL-таблицы "counterLike" в БД:
SoS! Help!