Изменить переменную php для всего документа - PullRequest
0 голосов
/ 10 февраля 2011

Я хочу изменить эффекты переменной набора, которая находится в начале документа, например:

if(isset($var)){
 // Show Loading Message
}
 // Whole bunch of code to load a report
unset($var); // To remove the loading message

Я хочу, чтобы замедление в конце кода удаляло сообщение загрузки, котороевыше, удалив переменную.Есть ли способ сделать это с помощью PHP?

Спасибо!

Примечание: Я понимаю, как программа обычно будет работать, вопрос в том, есть ли способ обойтиэта типичная модель выводится с использованием PHP.

Ответы [ 3 ]

2 голосов
/ 10 февраля 2011

Вы не можете удалить что-то, что уже было выведено в браузер с использованием PHP - после вывода сообщения о загрузке, с точки зрения PHP, оно исчезнет и выйдет за дверь.

Вам понадобится JavaScript на странице, чтобы манипулировать DOM и таким образом удалить текстовый узел.

Например:

print '<div id="loading_message">Loading, please wait</div>';

... bunch of code ...

print '<script type="text/javascript">var e = document.getElementById("loading_message"); e.parentNode.removeChild(e); </script>';
1 голос
/ 10 февраля 2011

Вам придется сделать это на стороне клиента; весь HTML, сгенерированный скриптом PHP, отправляется в браузер и не может быть получен снова. Чтобы сделать это на стороне клиента, присвойте загрузочному div идентификатор, скажем, #loading. Затем, в конце сценария PHP, вставьте немного JavaScript, чтобы скрыть div. Вот пример jQuery:

Загрузка div:

<div id="loading">Loading...</div>

jQuery (повторить это из нижней части вашего PHP-файла):

<script>
$("#loading").hide();
</script>

EDIT

В отношении ванильного решения JavaScript см. Ответ @ Chris

Надеюсь, это поможет,

Джеймс

0 голосов
/ 10 февраля 2011

Ну, на самом деле есть способы обработать PHP и отправить его в окно браузера ДО того, как все закончится обработкой.

Это хоккейный, хоккейный, хоккейный способ делать вещи, но я хотел хотя бы поделиться.

Вы можете использовать команду flush() в любой момент, чтобы вывести текущий момент обработки в браузер, пока страница все еще отображается.

Вы также можете выполнить обработку и сохранить выходные данные.обработки в выходном буфере до его выхода.

ob_start();

//Do a bunch of PHP stuff

$results = ob_get_contents();
ob_end_clean();

echo $results

Как я уже сказал ... HOKIE для общей обработки веб-страницы.Используйте jQuery или свой собственный JS, но, возможно, это пригодится где-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...