Как выполняется функция повышения голоса, оставаясь на той же странице? (PHP/MySQL)
У меня есть реляционная база данных и система потоков/комментариев. Мне трудно придумать способ решения проблемы с голосованием, так как страница должна быть обновлена, чтобы сервер заметил какие-либо изменения.
Я создал новую таблицу UPVOTESTHREAD, которая состоит из двух внешних ключей, идентификатора пользователя и идентификатора потока, а также первичного ключа, который представляет собой комбинацию этих двух. Единственный способ, которым я мог бы на самом деле вставить это, - это отправить некоторые данные по ПОЧТЕ. Я боюсь, что это будет выглядеть неуклюже для пользователя, и это также означало бы, что пользователю придется спуститься вниз, туда, где они только что смотрели. Это не может быть правильным решением, верно? Есть ли лучший способ сделать это?
1 answers
Да, есть лучшее решение. Он называется AJAX. Он отправляет запрос post или get на сервер и получает вывод без перезагрузки страницы.
Скрипт на сервере, который получает запрос ajax, может (в вашем случае) увеличить счетчик голосов в бд.
(обычно PHP-) скрипт также может выводить что-то (обычно json или код состояния), которое получит обработчик успеха функции ajax. Затем вы можете изменить свою страницу с помощью javascript соответственно. В вашем случае вы можете получить текущий подсчет голосов и обновить его рядом с кнопкой "Голосовать", если он есть.