как я могу автоматически добавить значение строки базы данных (PHP) на страницу без обновления самой страницы при изменении таблицы базы данных mysql?
Итак, это примерно так: автоматически обновлять браузер в ответ на изменения файловой системы? , но вместо обновления браузера с изменениями файловой системы обновите содержимое, не обновляя ничего, когда изменяется база данных.
Благодарю. Я попытался сделать это максимально ясным.
Обратите внимание, что это устаревший ответ. Последние способы сделать это: websockets, server-send events. Хорошим примером этого является Firebase. Вы можете найти простой пример кода в: https://github.com/laithshadeed/wsk-feedback . В этом примере вы увидите, что обновление firebase отправит событие в браузер через websocket, а затем обновит пользовательский интерфейс.
Это называется Comet / Reverse Ajax / HTTP-сервер push http://en.wikipedia.org/wiki/Comet_(programming) . Это много методов для этого, а также многие существующие рамки, чтобы сделать это за вас.
В SO много ответов о кометах https://stackoverflow.com/search?q=comet
Простой реализацией будет javascript setTimeout и setInterval для проверки состояния сервера, с триггером / хранимой процедурой на mysql.
Для погружения глубины в комету. Об этом есть две классные книги:
Комета и реверс Ajax 2008 by Dave Crane
Глава 4 (Река контента) – Создание пользовательского опыта в реальном времени 2010 Тед Роден
Обновление . Вы можете посмотреть на новые методы в HTML5, такие как Websockets и Server-sent Events, хотя IE не поддерживает их хорошо, на данный момент события, отправленные сервером, не поддерживаются в IE и веб-сокетах, поддерживаемых только в IE10
Это не совсем простая задача, но это не так уж плохо. Вам нужно несколько вещей, работающих в концерте:
Как вы определяете, какие данные были изменены, вам придется подумать. Самый простой способ, вероятно, состоит в том, чтобы для каждой записи поддерживалось «измененное» поле. Таким образом, когда ваш javascript опрашивает сервер, он может включать отметку времени «последний раз, когда я проверял», и сервер должен вернуть только те изменения, которые являются более поздними.
Это не так сложно, как может показаться на первый взгляд. Воспользуйтесь предварительно построенными библиотеками, такими как jQuery, и вы можете делать такие вещи, как:
$.ajax({ url: 'http://example.com/checkforupdates.php?last=' + (new Date().getTime()), context: document.body, success: function(data){ // do something here to add/update/remove elements on your page // using the information returned in the data argument. } });
Манипулируйте DOM с помощью JavaScript.