Как очистить страницу php
Перейти к содержимому

Как очистить страницу php

  • автор:

Очистка страницы после вызова echo

Здравствуйте, уважаемые форумчане! Сразу прошу сильно не ругаться если некорректно задан вопрос.

У меня есть функция (myfunc()) которая выводит содержимое массива. Как очистить экран после вызова функции?
( Предполагается что функция clear будет вызываться по клику на кнопку и стирать с экрана то, что в данный момент выведено на экране.)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
 function myfunc(){ $movie = array( "title" => "Rear Window", "director" => "Alfred Hitchcock", "year" => 1954, "minutes" => 112 ); echo "
"; foreach ( $movie as $key => $value ) { echo "
$key:
"
; echo "
$value
"
; } echo "
"
; } function clear(){ . } myfunc(); clear(); ?>

Как очистить страницу php

>так как при переходе на новую страницу старая таблица опять видна

Как это понимать? Запрашивается страница, на ней должна выводится таблица, выводим. Запрашивается другая страница, и на ней не должно быть таблицы, и если ее не выводить, то ее и не будет. С чего она у вас появляется?

автор: danga (27.11.2013 в 16:05) письмо автору

Для меня это тоже не понятно, почему эта первая таблица на второй странице page2 отображается, и никак ее не стереть. По идее, на второй странице новый boby и новый div должно все очистить со страницы page1. Но по всей видимости при переходе по include то что было на первой странице в тегах HTML не стерлось, так как URL все тот же. На старницу page1 я попадаю со странницы page0 тоже по includ, и на старнице page0 тоже есть короткая форма регистрация в таблице, но она заключена в php вот так:

.
print ‘

.

‘ :
?>
.

на странице page1 эта форма не оборажается.
Но этот вариант я не могу использовать на page1, потому что в новой форме используются селекты и переключатели, а их невозможно заключить в php print ‘ . ‘;

автор: confirm (27.11.2013 в 16:24) письмо автору

Не очищать страницу нужно от таблицы, а разбираться с логикой вашего скрипта, это причина.

автор: danga (27.11.2013 в 18:08) письмо автору

логику я же описала.
упрощенно: есть три файла с формами: page0, page1 и page2
page0 (form0 c обработчиком, ввод регистрационных данных и запись их в базу, iduser автоматом записывается в базу)
— incude page1 ((form1 c обработчиком, вводятся еще данные и записываются в новую базу, туда же записывает iduser из первой базы, здесь все в порядке)
include page2 (выводит данные из баз по определенным критериям)
form1 c селектами и переключателями, оформленa в тегах HTML.
проблема в том, что form1 после нажатия на кнопку submit очищается от данных, но сама пустая форма перекочевывает на page2. Она там совсем не нужна, потому что на page2 я уже успешно вывожу новые таблицы с данными из баз. Как сделать, чтобы после проверки и редактирования form1 эта форма не отображалась на page2

автор: confirm (27.11.2013 в 18:50) письмо автору

Ничего вы не описали. Динамическое содержимое формируется в массе своей по условию. Не важно что это — таблицы, формы, подключаемые файлы. Если ваши страницы, это запрос к одному файлу, например к индексному, и он по ID запрашиваемой страницы отдает нужный контент, то у вас либо в условиях (логике) ошибка, либо в структуре кода, либо в переменных.
Если же получение этих трех файлов запрос к отдельным файлам, то даже трудно представить как можно в разном накосячить.

Проверяйте свой код, в нем ошибка.

Как очистить страницу php

Профиль
Группа: Участник
Сообщений: 211
Регистрация: 24.1.2008

Репутация: нет
Всего: 8

Здравствуйте, гуру php. Только сегодня сел за этот язык. И мне нужно очистить страницу. Т е на странице есть кнопка, по нажатию которой должна очищаться текущая страница. Google пока ничем не помог, но продолжаю поиски. Подскажите пожалуйста как очистить страничку?

Who had deceived thee so often as thyself? © Benjamin Franklin———————Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln———————If you need it — do it, if you want it — take it! © .

Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260

на сервере РНР формирует HTML-код, отправляет его клиенту и браузер-клиент этот HTML как-то выводит/отображает.
что значит «при помощи РНР очистить страницу»? очистить ОТ чего?

Профиль
Группа: Завсегдатай
Сообщений: 12015
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315

конечно ситуация невероятная. человек сел за язык, но вместо чтения учебника придумывает себе задачи, перпендикулярно стоящие самой идее языка, и спрашивает ответы на них

Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 1
Всего: 39

Код
echo
a;
?>

ЗЫ. Присоединяюсь к ораторам, выбирайте язык под задачу (учебную).

‘Cuz I never walk away from what I know is right
Alice Cooper — Freedom

Профиль
Группа: Участник
Сообщений: 211
Регистрация: 24.1.2008

Репутация: нет
Всего: 8

Да дело не в том что не сел за учебник, просто пхп я пока учить не собиралс, а нужно лабу сделать (одна из лаб по дисциплине подразумевает php).
В общем вот что нужно сделать:

Цитата
Видоизменить сценарий 4 лабораторной работы №7 со следующим
образом: пусть сервер меняет набор ссылок в зависимости от того, какой
по счету пользователь на сервере. После того как клиент осуществил
выбор, весь список выбранных ссылок (или уникальных номеров) должен
отправляться на сервер, где сервер автоматически генерирует страницу под
заголовком: «Вами были выбраны следующие ссылки:». В теле страницы
должны отображаться выбранные клиентом строки.

А вот задание 4:

Цитата
Создайте форму, на которой разместите несколько чек-боксов (кнопка-
флажок с независимой фиксацией). Каждый элемент должен
сопровождаться текстовой строкой представляющей собой ссылку на
некоторую страницу Интернет (рис. 4.6). Когда пользователь отмечает
чек-бокс, то строка, соответствующая чекбоксу автоматически
записывается в текстовое поле на странице. После нажатия кнопки «Ок»
скрипт должен открыть несколько окон в браузере в соответствии с
выбранными ссылками.

В общем в дополнение к заданию, все должно быть написано в одном php файле и js использовать нежелательно.
Вот примерно я думаю это должно быть:

Код
if ($_POST[‘Ok’])
if (!isset($_POST[‘checkBox’]))
echo ‘ERROR’;
>
else
// тут если выводить теги через echo,
//то все добавляется вверх страницы, поэтому я и предпологал очистить ее
>
>
?>

Обновление списка ссылок




Сижу конечно теперь читаю учебник пока, но если не трудно подскажите, и особенно как вот это реализовать:

Цитата
пусть сервер меняет набор ссылок в зависимости от того, какой по счету пользователь на сервере

, непонятно. Вообще php какой то странный язык, не очень красивый что ли, хотя может это из за того что я не писал ничего на нем

Who had deceived thee so often as thyself? © Benjamin Franklin———————Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln———————If you need it — do it, if you want it — take it! © .

Профиль
Группа: Завсегдатай
Сообщений: 12015
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315

Цитата(Joil @ 1.5.2010, 10:15 )
пусть сервер меняет набор ссылок в зависимости от того, какой по счету пользователь на сервере

логично, что в этом случае должно как-то сохраняться значение счётчика. единственное место общее для всех пользователей и единственное куда может сохранять пхп — это сервер.
соответственно, при заходе пользователя нужно:
а) прочесть прежнее значение счётчика
б) увеличить на единицу
в) записать новое значение счётчика
г) открыть сохранённый ранее набор ссылок для полученного номера счётчика
д) отдать текст пользователю

в общих чертах всё сводится к работе с хранилищем данных. для пхп есть два стандартный варианта: файлы и база данных. обычно под такие левые задачи в виде лаб выбирают файлы.

соответственно:
а) fopen(), fgets(), fclose()
б) $i++
в) fopen(), fwrite(), fclose()
д) fopen(), fgets(), fclose()
д) echo

осталось только придумать как сочетать эти функции

задание 4 никакого отношения к пхп не имеет. его надобно делать на javascript

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET
  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь
  • Темы «ищу скрипт», «подскажите скрипт» и т.п. будут переноситься в форум «Web-технологии»
  • Темы с именами: «Срочно», «помогите», «не знаю как делать» будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »

[ Время генерации скрипта: 0.2707 ] [ Использовано запросов: 21 ] [ GZIP включён ]

ob_end_clean

Эта функция удаляет содержимое самого верхнего буфера вывода и отключает эту буферизацию. Если вы хотите использовать содержимое буфера, то вам необходимо вызвать ob_get_contents() перед ob_end_clean() , так как все содержимое буфера удаляется при вызове ob_end_clean() .

Буфер вывода должен запускаться функцией ob_start() с флагами PHP_OUTPUT_HANDLER_CLEANABLE и PHP_OUTPUT_HANDLER_REMOVABLE. Иначе не сработает ob_end_clean() .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. Основной причиной неудачного завершения работы функции является её вызов без активного буфера или если буфер не может быть удалён (специальный тип буфера).

Ошибки

Если функция завершается ошибкой, генерируется E_NOTICE .

Примеры

Следующий пример показывает простой способ избавиться от всех выходных буферов:

Пример #1 Пример использования функции ob_end_clean()

ob_start ();
echo ‘Текст, который не отобразится.’ ;
ob_end_clean ();
?>

Смотрите также

  • ob_start() — Включение буферизации вывода
  • ob_get_contents() — Возвращает содержимое буфера вывода
  • ob_flush() — Сбросить (отправить) буфер вывода

User Contributed Notes 12 notes

19 years ago

Note that if you started called ob_start with a callback, that callback will still be called even if you discard the OB with ob_end_clean.

Because there is no way of removing the callback from the OB once you’ve set it, the only way to stop the callback function from having any effect is to do something like:

$ignore_callback = false ;
ob_start ( ‘my_callback’ );
.
if( $need_to_abort ) $ignore_callback = true ;
ob_end_clean ();
.
>

12 years ago

Take note that if you change zlib output compression setting in between ob_start and ob_end_clean or ob_end_flush, you will get an error: ob_end_flush() failed to delete buffer zlib output compression

ini_set ( ‘zlib.output_compression’ , ‘1’ );

?>

ob_end_clean(); in this example will throw the error.

3 years ago

If there is no confidence about output buffering (enabled or not),
you may try these guards:

while ( ob_get_level () !== 0 ) ob_end_clean ();
>

while ( ob_get_length () !== false ) ob_end_clean ();
>

20 years ago

You might want to prevent your script from executing if the client already has the latest version.
You can do it like so:

$mtime=filemtime($_SERVER[«SCRIPT_FILENAME»])-date(«Z»);
$gmt_mtime = date(‘D, d M Y H:i:s’, $mtime) . ‘ GMT’;

if(isset($headers[«If-Modified-Since»])) if ($headers[«If-Modified-Since»] == $gmt_mtime) header(«HTTP/1.1 304 Not Modified»);
ob_end_clean();
exit;
>
>

$size=ob_get_length();
header(«Last-Modified: «.$gmt_mtime);
header(«Content-Length: $size»);
ob_end_flush();

Instead of checking the If-Modified-Since-Header against the date of the last modification of the script, you can of course query a database or take any other date that is somehow related to the modification of the result of your script.

You can for instance use this technique to generate images dynamically. If the user indicates he already has a version of the image by the If-Modified-Since-Header, there’s no need to generate it and let the server finally discard it because the server only then interpretes the If-Modified-Since-Header.
This saves server load and shortens response-times.

16 years ago

Keep in mind that mrfritz379’s example (#49800) is just an example. You can achieve that example’s result in a more efficient manner without using output buffering functions:

echo «

Search running. Please be patient. . .»;
$output = «

FileList:

\n»;
if (is_dir($dir)) $dh = opendir($dir);

while (($fd = readdir($dh)) != false) echo » .»;
$output .= $fd;
>
>
echo «
Search Complete!

\n»;
echo $output;

In addition to John Smith’s comment (#42939), ob_gzhandler() may still set the HTTP header «Content-Encoding» to «gzip» or «deflate» even if you call ob_end_clean(). This will cause a problem in the following situation:

1. Call ob_gzhandler().
2. Echo «Some content»;
3. Call ob_end_clean().
4. Echo «New content»;

In the above case, the browser may receive the «Content-Encoding: gzip» HTTP header and attempts to decompress the uncompressed «New content». The browser will fail.

In the following situation, this behaviour will go unnoticed:

1. Call ob_gzhandler().
2. Echo «Some content»;
3. Call ob_end_clean().
4. Call ob_gzhandler().
5. Echo «New content»;

This is because the second ob_gzhandler() will mask the absence of the first ob_gzhandler().

A solution would be to write a wrapper, like John Smith did, for the ob_gzhandler().

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

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