Метод отправки не влияет, можно любым методом передать. А вот кошмар на странице как раз и может повлиять на неразбериху. Например, кнопки то можно иметь и такие:
<button name="id" value="<?=$id_mes?>"><span>1</span> голоса <span>2</span> симпатии</button>
И отправлять так:
$(function() {
$('button').click(function() {
var btn = $(this);
$.ajax({
url: "like.php",
type: "POST",
data: this.name+'='+this.value,
dataType: 'json', //можно и текстом оперировать, по соглашению
success: function(data) {
if(!data.error) { //только если сервер не вернул ошибки
btn.children().text(function() {
return ++this.textContent
})
}
},
})
});
});
И все будет работать без запинки, это легко проверить. У вас в чем-то косяки, но по представленному не понять.
А вот с базой,
это нужно знать обязательно. Если уж не используете метки доступные в mysqli, то запрос можно в данном случае производить по условию:
if($id = (int)$_POST['id']) {
//здесь запросы
} else //ошибка
//ответ клиенту
....