Перейти к содержимому

Как сделать автообновление div в php

  • автор:

Реализация автообновления определенного DIV без перезагрузки страницы?

Здравствуйте, имеется некий div=fon2 на index.php.
Суть проста. Внутри див находится еще один PHP скрипт. Реализовать его автообновление через каждую минуту, не перезагружая полностью страницу.
То есть простыми словами, вы сидите смотрите в экран. И этот див сам обновился без вашей помощи. В интернете нашел много чего,но четкого ответа так никто и не дал. Нашел только автообновления всей страницы,но под определенный див он не работает. Если можно, подскажите как это сделать, желательно кодом или ярким примером. Спасибо.

  • Вопрос задан более трёх лет назад
  • 1298 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 1

aliksend

Software Engineer

const updateDiv = () = < /* Делаем AJAX запрос. Если используется хоть что-то на клиенте, например jquery, можно написать проще */ var xhr = new XMLHttpRequest(); xhr.open('GET', 'updated_div.html', true); // эта страница выдаёт вёрстку нашего дива xhr.onreadystatechange =() => < if (xhr.readyState != 4) return; if (xhr.status != 200) < /* Запрос успешен, выводим в div */ document.getElementById('fon2').innerHtml = xhr.responseText >else < /* Ошибка запроса, обрабатываем в зависимости от ситуации */ alert(xhr.responseText); >setTimeout(updateDiv, 60000); // Ставим таймер на следующее обновление > xhr.send(); > // Вызвать для первого обновления div-а updateDiv();

На самом деле не совсем правильно передавать innerHtml, у вас же скорее всего не обновляется макет, только данные. Тогда можно было бы сделать ‘jsx для бедных’, вроде такого

getDivLayout = (data) => < return `'>$ `; >

и, соответственно, с сервера отправлять json, в onreadystatechange при успешном ответе его парсить и передавать в getDivLayout, результат которого уже вставлять в innerHtml div-а

Как сделать автоматическое обновление маркеров?

Здравствуйте! Необходимо, чтобы при добавлении в базу новых координат, на карте маркер выставлялся без обновление страницы. С Ajax ранее не работал (если он для этого), поэтому затрудняюсь реализовать, буду благодарен за помощь. Страница генерация маркера в базу (из документации гугла):

','>',$xmlStr); $xmlStr=str_replace('"','"',$xmlStr); $xmlStr=str_replace("'",''',$xmlStr); $xmlStr=str_replace("&",'&',$xmlStr); return $xmlStr; > $result = $pdo->query("SELECT * FROM markers WHERE 1"); header("Content-type: text/xml"); // Start XML file, echo parent node echo ''; // Iterate through the rows, printing XML nodes for each while ($row = $result->fetch())< // ADD TO XML DOCUMENT NODE echo ''; > // End XML file echo ''; 

Страница карты самой карты и маркеров:

    Los Santos Police Department - 911 Online Map     /* Allow the canvas to use the full height and have no margins */ html, body, #map-canvas         

SanMap это карта для игры, которая позволяет работать с игровой картой, а не нашей Земли.

maxua.com.ua Автоматизация интернет магазинов

два способа обновить часть страницы без перезагрузки

PHP не может этого сделать, только на стороне клиента с использованием Javascript.

вариант с использованием JQuery :

Index.php

Может быть обновлены с помощью следующего кода:

Это позволит загружать содержимое #block из index.php без обновления всей страницы.

Можно автоматизировать, обновляется каждые 30 секунд с помощью setInterval ();

setInterval(function() <
$(«#block»).load(«index.php #block»);
>, 30000);

еще вариант с iframe:

Как сделать автообновление div в php

Доброго времени суток!

Подскажите как решить задачу:

Имеется блок div

При нажатии кнопки обновляется блок

 function Click()

1.php это где находится этот блок по умолчанию

и вот в чем косяк у меня при нажатии кнопки получается так что один блок в другой упаковывается

Вопрос как мне убрать один блок div?

Убрать нужно повторяющийся блок div

«Я не волшебник, я только учусь»
Последний раз редактировалось s88s; 16.09.2019 в 21:20 .
Регистрация: 09.01.2008
Сообщений: 26,238

так. а что возвращает 1.php ?
где кавычки в команде load()?
и для чего написан селектор #div_1 после 1.php ?

function Click()
Serge_Bliznykov
Посмотреть профиль
Найти ещё сообщения от Serge_Bliznykov

Форумчанин
Регистрация: 02.01.2014
Сообщений: 369
Сообщение от Serge_Bliznykov
так. а что возвращает 1.php ?

На странице 1.php расположено несколько дивов с разной информацией

Сообщение от Serge_Bliznykov
где кавычки в команде load()?

Кавычки у меня есть просто тут по запаре забыл написать плюс пост писал с телефона =(

Сообщение от Serge_Bliznykov
и для чего написан селектор #div_1 после 1.php ?

Селектор написан что бы только он отобразился на странице а не вся страница в одном блоке

Сообщение от Serge_Bliznykov

function Click()

Так перезапустится вся старница

Точнее в div_1 загрузится вся страница так сказать про дублируется

Мне нужно сделать обновление блока div после нажатия на кнопку без перезагрузки страницы по id

«Я не волшебник, я только учусь»
Последний раз редактировалось s88s; 16.09.2019 в 21:27 .
Регистрация: 09.01.2008
Сообщений: 26,238
Сообщение от s88s
Так перезапустится вся старница

Вы в div1 хотите загрузить div1 ?
но он его внутрь дива и загружает.
Что Вы хотите, чтобы после перезагрузки div получил значение такое, как было до перезагрузки?

Serge_Bliznykov
Посмотреть профиль
Найти ещё сообщения от Serge_Bliznykov

Форумчанин
Регистрация: 02.01.2014
Сообщений: 369
Сообщение от Serge_Bliznykov

Вы в div1 хотите загрузить div1 ?
но он его внутрь дива и загружает.
Что Вы хотите, чтобы после перезагрузки div получил значение такое, как было до перезагрузки?

К примеру есть блок div

После нажатия на кнопку мне этот блок див нужно просто обновить что бы на экран вывелась обновленная информация

не понимаю как это сделать
«Я не волшебник, я только учусь»
Регистрация: 09.01.2008
Сообщений: 26,238
для исходного примера, попробуйте просто после загрузки переписать содержимое блока.
например, так

function Click()< $( "#div_1").load( "1.php #div_1", function( ) < $( "#div_1").html($( "#div_1").find('div').html()); >); >

Сообщение от s88s

После нажатия на кнопку мне этот блок див нужно просто обновить что бы на экран вывелась обновленная информация

я так и не могу понять,
Содержимое 2 откуда возьмётся то? Если у Вас в исходном файле написано Содержимое 1 ? и после загрузки Вы и получите тоже самое Содежимое 1, которое Вы читаете. Новое откуда возьмётся то?

Serge_Bliznykov
Посмотреть профиль
Найти ещё сообщения от Serge_Bliznykov

Участник клуба
Регистрация: 19.01.2009
Сообщений: 1,453

function Click() < $("div").click(function () < $(this).replaceWith($.get('1.php')); >); >

Регистрация: 09.01.2008
Сообщений: 26,238

uberchel, в принципе классное решение. :good:

только у ТС проблема в том, что файл 1.php — это как раз и есть исходная страница, включая всё, в том числе и сами js скрипты и тот же div
поэтому, Ваш код будет работать, если будет идти обращение не к самому себе (не к тому файлу, где находится данный код, а к нормальному скрипту, который вернёт нужное содержимое div)
скажем, $.get(‘get_div1.php’)

Serge_Bliznykov
Посмотреть профиль
Найти ещё сообщения от Serge_Bliznykov

Участник клуба
Регистрация: 19.01.2009
Сообщений: 1,453
Тогда просто и без геморроя )

$.get('1.php', function (data) < $('#div_1').html($('#div_1', data).html()); >);

Форумчанин
Регистрация: 02.01.2014
Сообщений: 369
Сообщение от uberchel
Тогда просто и без геморроя )

$.get('1.php', function (data) < $('#div_1').html($('#div_1', data).html()); >);

Может и без геморроя но этот вуариант мне не подходит так как грузить всю страницу в блок div
А мне надо всего лишь перезапустить точнее обновить блок див . reload ему сделать . обновить всего один блок по его id.

«Я не волшебник, я только учусь»
Последний раз редактировалось s88s; 17.09.2019 в 09:35 .

Страница 1 из 2 1 2 Следующая >
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Blowfish (резервирование дополнительного байта для блока, говорящий о длине блока) ITdocer Общие вопросы C/C++ 0 21.05.2014 15:40
обновление функции или блока php Viboxjuwin PHP 3 30.10.2013 15:10
Макрос: обновление одного файла данными из другого darthraziel Microsoft Office Excel 33 18.09.2012 17:11
можно ли играть по сети с одного системного блока :=) Свободное общение 11 04.02.2012 19:59
Автоматическое обновление блока данных Jakethefish PHP 4 05.03.2011 22:37

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *