Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скрытые поля и CGI, использование скрытых полей в CGI 
:(
    Опции темы
dima111
Дата 1.5.2007, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В-общем нужно сделать такую вещь: 

2 фрейма. В левом - поле ввода и кнопка. В правом - будет появлятся то, что было в поле ввода после нажатия кнопки. Но это должно срабатывать так: после второго нажатия текст справа не удаляется, а смещается вниз + сверху появляется новый. 

мой недоделанный вариант с использованием скрытого поля:

Код

#!/usr/bin/perl

if($ENV{'REQUEST_METHOD'} eq 'GET'){#Анализируем метод,GET или POST
   $query=$ENV{'QUERY_STRING'};
   }
elsif($ENV{'REQUEST_METHOD'} eq 'POST'){
   sysread(STDIN,$query,$ENV{'CONTENT_LENGTH'});
   }

@formfields=split(/&/,$query);

foreach(@formfields){
   if(/^list=(.*)/){$list=urldecode($1);}
   if(/^list2=(.*)/){$list2=urldecode($1);};
   };

sub urldecode{    
local($val)=@_;  
$val=~s/\+/ /g;
$val=~s/%([0-9a-hA-H]{2})/pack('C',hex($1))/ge;
return $val;
};


print "Content-Type: text/html\n\n"; 

if(!exists $ENV{PATH_INFO}) 
    {
    print qq
        {
        <HTML> <FRAMESET FRAMEBORDER="Yes" FRAMESPACING="2" BORDER="1" COLS="30%,*">
        <FRAME SRC="$ENV{SCRIPT_NAME}/query" name="query">
        <FRAME SRC="$ENV{SCRIPT_NAME}/response" name="response">
        </FRAMESET> </HTML> 
         }; 
    exit 0; 
    }

if($ENV{PATH_INFO} eq "/query") 
    {
    print qq
        {
        <HTML> <BODY bgcolor=#ffffff> <CENTER><H1><FONT color=WHITE>Введите текст:</H1></FONT>
        <FORM ACTION=$ENV{SCRIPT_NAME}/response method=post TARGET="response">
    <BR>

    <input type="text" name="list" size="30" value="text">
    <input type="hidden" name="list2" value="что сюда написать?????????">
        <input type="submit" value="Отправить">
        </FORM> 
        <BR>
        
        </BODY></HTML>
        };
     }

if($ENV{PATH_INFO} eq "/response") 
    {
            print qq {
             <HTML> <BODY> <H1> $list <br> $list2</H1> </BODY> </HTML>}
            }


это вообще должно работать? подскажите плиз!!! если не трудно выложите рабочий вариант (доделанный мой)

Это сообщение отредактировал(а) dima111 - 2.5.2007, 00:26
PM MAIL   Вверх
dima111
Дата 2.5.2007, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



правильный вариант:

Код

#!/usr/bin/perl
 if($ENV{'REQUEST_METHOD'} eq 'GET'){
   $query=$ENV{'QUERY_STRING'};
   }
 elsif($ENV{'REQUEST_METHOD'} eq 'POST'){
   sysread(STDIN,$query,$ENV{'CONTENT_LENGTH'});
   }

@formfields=split(/&/,$query);

 foreach(@formfields){
   if(/^list=(.*)/){$list=urldecode($1);};
   if(/^list2=(.*)/){$list2=urldecode($1);};
   };

sub urldecode{
 local($val)=@_;
 $val=~s/\+/ /g;
 $val=~s/%([0-9a-hA-H]{2})/pack('C',hex($1))/ge;
 return $val;
 };


print "Content-Type: text/html\n\n";

if(!exists $ENV{PATH_INFO})
    {
    print qq
       {
        <HTML> <FRAMESET FRAMEBORDER="Yes" FRAMESPACING="2" BORDER="1" COLS="30%,*">
        <FRAME SRC="$ENV{SCRIPT_NAME}/query?$ENV{QUERY_STRING}" name="query">
        <FRAME SRC="$ENV{SCRIPT_NAME}/response?$ENV{QUERY_STRING}" name="response">
        </FRAMESET> </HTML> 
         }; 
 exit 0;
}

if($ENV{PATH_INFO} eq "/query") 
    {
    print qq
        {
        <HTML> <BODY bgcolor=#ffffff> <CENTER><H1><FONT color=WHITE>Введите текст:</H1></FONT>
        <FORM ACTION=$ENV{SCRIPT_NAME} method=get target="_parent">
    <BR>
    <input type="text" name="list" size="30" value="text">
    <input type="text" name="list2" value="$list2 $list">
    <input type="submit" value="Отправить">
        </FORM>
        <BR>

        </BODY></HTML>
        };
     };

if($ENV{PATH_INFO} eq "/response")
    {
            print qq {
         <HTML> <BODY> <H1> $list <br> $list2</H1> </BODY> </HTML>}
            }


Надеюсь кому-нибудь пригодится.....

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

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


 




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


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.