URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 3092
[ Назад ]

Исходное сообщение
"как обновить вывод на страницу после POST"

Отправлено bobbob , 16-Фев-05 16:11 
Заканчиваю писать носвостную ленту... Как после записи из формы в MySQL передать управление на обновление страницы, чтобы сразу после нажатия кнопки новая запись сразу появилась на экране?

Содержание

Сообщения в этом обсуждении
"как обновить вывод на страницу после POST"
Отправлено muhlik , 17-Фев-05 09:46 
>Заканчиваю писать носвостную ленту... Как после записи из формы в MySQL передать
>управление на обновление страницы, чтобы сразу после нажатия кнопки новая запись
>сразу появилась на экране?

а в чем собственно проблема??? ну в скрипте пиши сначала в БД а потом все выбирай и выводи на страницу... или поточнее задай вопрос.


"как обновить вывод на страницу после POST"
Отправлено mrwel , 17-Фев-05 12:29 
>>Заканчиваю писать носвостную ленту... Как после записи из формы в MySQL передать
>>управление на обновление страницы, чтобы сразу после нажатия кнопки новая запись
>>сразу появилась на экране?
>
>а в чем собственно проблема??? ну в скрипте пиши сначала в БД
>а потом все выбирай и выводи на страницу... или поточнее задай
>вопрос.

if($ENV{REQUEST_METHOD} eq 'GET'){
  вывод новостей
}
if($ENV{REQUEST_METHOD} eq 'POST'){
  сохранение данных
  print redirect("/cgi-bin/news.pl");
}


"как обновить вывод на страницу после POST"
Отправлено bobbob , 17-Фев-05 13:21 
>>а в чем собственно проблема??? ну в скрипте пиши сначала в БД
>>а потом все выбирай и выводи на страницу... или поточнее задай
>>вопрос.
У меня сделано так:
---------------------------------
вывод новостей в таблицу (в PHP)
---------------------------------
Форма для заполнения (в HTML)
---------------------------------
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{ #запись в базу };
Вот после этого дела нужно вернуться снова к выводу новостей.


>if($ENV{REQUEST_METHOD} eq 'GET'){
>  вывод новостей
>}
>if($ENV{REQUEST_METHOD} eq 'POST'){
>  сохранение данных
>  print redirect("/cgi-bin/news.pl");
А это что такое? во всяком случае у меня такой функции нет в описаниях.
Да и ПХП ругается на Undefined function....



"как обновить вывод на страницу после POST"
Отправлено michelle , 18-Фев-05 12:05 
>>>а в чем собственно проблема??? ну в скрипте пиши сначала в БД
>>>а потом все выбирай и выводи на страницу... или поточнее задай
>>>вопрос.
>У меня сделано так:
>---------------------------------
>вывод новостей в таблицу (в PHP)
>---------------------------------
>Форма для заполнения (в HTML)
>---------------------------------
>if ($_SERVER['REQUEST_METHOD'] == 'POST')
> { #запись в базу };
>Вот после этого дела нужно вернуться снова к выводу новостей.
>
>
>>if($ENV{REQUEST_METHOD} eq 'GET'){
>>  вывод новостей
>>}
>>if($ENV{REQUEST_METHOD} eq 'POST'){
>>  сохранение данных
>>  print redirect("/cgi-bin/news.pl");
>А это что такое? во всяком случае у меня такой функции нет
>в описаниях.
>Да и ПХП ругается на Undefined function....
>
>


Для PHP используй header("Location: /cgi-bin/news.pl\n\n");


"как обновить вывод на страницу после POST"
Отправлено Alex , 22-Фев-05 13:54 
1. Sohranjay v bazu pered vivodom

2. Sozday peremennuju $r = md5(time());

3. I v action formi dobavj eyo dlja peredachi GET metodom
   <form action="TVOYscript.php?ref=$r">

Ili zhe stavj no-cache v header`e html


"как обновить вывод на страницу после POST"
Отправлено scum , 25-Фев-05 18:12 
if($ENV{REQUEST_METHOD} eq 'GET'){
  вывод новостей
}
if($ENV{REQUEST_METHOD} eq 'POST'){
  сохранение данных
  print redirect("/cgi-bin/news.pl");
}

Это на перле, а вот как это выглядит на PHP:

if (strcmp($_SERVER["REQUEST_METHOD"], "GET") {
  вывод новостей
}
if (strcmp($_SERVER["REQUEST_METHOD"], "POST") {
  сохранение данных
  header("Location: /cgi-bin/news.php");  
}


"как обновить вывод на страницу после POST"
Отправлено XAnder , 28-Фев-05 18:29 
>Заканчиваю писать носвостную ленту... Как после записи из формы в MySQL передать управление на обновление страницы, чтобы сразу после нажатия кнопки новая запись сразу появилась на экране?

Я на этих делах в своё время много шишек набил. И пришёл в выводу, что скрипты нужно делать двух сортов:

1. только выдача данных клиенту, никакой записи в БД, такой скрипт можно вызывать сколько угодно раз подряд, в том числе, обновляя окошко браузера;

2. только запись в БД, никакого вывода на клиента, скрипт вызывается через формы из скриптов типа 1, делает своё чёрное дело :) и с помощью, как тут уже подсказывали, header("Location: $backlocation") передаёт управление вызвавшему его скрипту, естественно, последний должен передавать параметр $backlocation с указанием на себя любимого.

Уже в нескольких проектах опробовал эту схему - результатом доволен.


"как обновить вывод на страницу после POST"
Отправлено Mixa , 01-Мрт-05 15:34 
А если на вызов header он ругается:
"Cannot modify header information - headers already sent by " - что тогда?

"как обновить вывод на страницу после POST"
Отправлено XAnder , 01-Мрт-05 20:04 
> А если на вызов header он ругается:
>"Cannot modify header information - headers already sent by " - что тогда?

Угу, видал такое. Бывает, когда скрипт второго типа что-то всё-таки выводит клиенту. Это единственная причина преждевременной отправки http-заголовков. Если такое вылетает - ищите, нет ли в скрипте вызовов echo и иже с ним, нет ли чего-нибудь за пределами тегов <?php ?>.

Кстати, других сообщений об ошибках не появляется?


"как обновить вывод на страницу после POST"
Отправлено Tenkoff , 13-Мрт-05 07:56 
>Заканчиваю писать носвостную ленту... Как после записи из формы в MySQL передать
>управление на обновление страницы, чтобы сразу после нажатия кнопки новая запись
>сразу появилась на экране?


Если на стороне сервера не получается, реши проблему на стороне клиента, через JavaScript