Есть следующий код JS, который ловит нажатие на кнопку и отправляет данные data-id в обработчик:
$(document).ready(function() {
$("#like<?=$id_mes?>").bind("click", function(event) {
$.ajax({
url: "like.php",
type: "POST",
data: {id: $("#like<?=$id_mes?>").attr("data-id")},
complete: function() {
$("#likes<?=$id_mes?>").text(Number($("#likes<?=$id_mes?>").text()) + 1);
$("#userr<?=$id_mes?>").text(Number($("#userr<?=$id_mes?>").text()) + 1);
},
dataType: "text"
});
});
});
А вот собственно сама кнопка с полями, где будет делаться инкремент:
<input type="button" value="Лайк" id="like<?=$id_mes?>" data-id="<?=$id_mes?>">
<span id="likes<?=$id_mes?>"><?=$arr_messages[$i]['likes']?></span> лайков
Симпатий:<span class="right" id="userr<?=$id_mes?>"><?=$arr_user[0]['sympathy']?></span>
Это сам обработчик:
<?php
$mysqli = new mysqli('localhost', 'root', '', 'phpuse');
$mysqli->set_charset('utf8');
$id = $_POST['id'];
$mysqli->query("UPDATE `messages` SET `likes` = `likes` + 1 WHERE `id` = '$id'");
$user = $mysqli->query("SELECT `login` FROM `messages` WHERE `id` = '$id'");
$user = $user->fetch_assoc();
$user = $user['login'];
$mysqli->query("UPDATE `users` SET `sympathy` = `sympathy` + 1 WHERE `login` = '$user'");
$mysqli->close();
А теперь к самому вопросу: почему данные передаются некорректно? Некорректно, потому что используя метод отправки GET данные в БД меняются, а вот с POST — нет.