#php
#php
Вопрос:
Мне нужно иметь PHP-страницу, которая может позволить одному человеку отправлять на нее POST-запрос с информацией, а затем каждый пользователь, у которого уже открыта страница, будет автоматически обновляться, чтобы отразить новую информацию в POST-запросе без обновления страницы.
У меня есть небольшой опыт работы с PHP, и я могу обрабатывать получение POST-запроса и чтение / запись в базу данных, мне просто нужно знать, как (если возможно) Я могу заставить этот PHP-скрипт отправлять эту новую информацию всем подключенным клиентам, не требуя от них обновления страницы.
Спасибо за любую информацию!
Комментарии:
1. Вам нужно использовать
jquery
иajax
. Если вам не нравятся эти два парня, тогда ваш единственный шанс — обновить страницу.2. @Franco Я использую ajax с другой страницы для создания POST-запроса на эту страницу. Я не очень хорошо знаком с ajax, но если бы я мог указать правильное направление, я бы с удовольствием узнал, как это сделать.
3. Взгляните на w3schools.com/ajax прокрутите страницу вниз, и вы увидите, как она отправляет запросы на другую веб-страницу. Вы должны быть в состоянии найти свой путь оттуда.
4. Если вы ищете что-то вроде сокета. ввод-вывод для php, тогда могу ли я предложить ratchet
5. @Rawrskyes и ippi Благодарим вас за предложения, я обязательно их рассмотрю.
Ответ №1:
Хорошо, Аарон, я должен продолжить здесь, потому что в комментарии не так много места для объяснения этого.
Если вы уже используете ajax
для отправки данных в базу данных, вы можете сделать это так:
на странице, которую вам нужно обновить, добавьте другое ajax request
, чтобы извлечь опубликованные значения из базы данных и обернуть их в функцию, например:
function get_post(){
var Url = 'here the url that points to your php script'
$.ajax({
url: Url,
type: 'POST',
dataType: 'json',
data: { //if needed you need to pass here the parameters },
})
.done(function(data) {
//here assign the returned data to the html element
})
.fail(function() {
console.log("error");
});
}
после этого вам понадобится это, чтобы вызывать функцию с периодическими интервалами:
setInterval(function(){
get_post()
},5000);
Это будет выполнять вышеупомянутую функцию каждые 5 секунд (отрегулируйте это значение в соответствии с вашими потребностями)
Страница будет обновляться без перезагрузки.
ПРИМЕЧАНИЕ: я не знаю, что вы храните и что собираетесь показывать, поэтому в зависимости от того, что вы планируете делать, вам нужно будет добавить дополнительный код в возвращаемый ответ, и, возможно, вам нужно будет предварительно отформатировать выводимый html
непосредственно в вашем php
скрипте, чтобы вы могли отобразить его вваша страница за один раз.
Я надеюсь, что это даст вам представление о том, как это сделать.
Комментарии:
1. Спасибо, это очень помогает. Я думаю, что смогу разобраться с этим.
2. Это вопрос к ответу, однако я хотел бы расширить вопрос: есть ли способ получить данные во внешнем интерфейсе, как только поступит запрос. Другими словами, что-то вроде вывода прерывания на микроконтроллере, который поднимет флаг для интерфейса (js), на основе которого запускается функция-обработчик?