Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Обработка формы


Автор: Paha21 9.7.2007, 14:20
Здраствуйте

Вы не могли бы подсказать: Как обрабатываются кнопки типа IMAGE(<INPUT TYPE=IMAGE src=foto1.bmp NAME=action VALUE=$count>)? Value там игнорируется, а name выдается в виде 2 параметров: name.x и name.y (action.x, action y) - у меня 4 графические кнопки.

Если я пишу if($action.x) мне выдается список, но без позиций, даже если добавить поле HIDDEN в обе кнопки - поле HIDDEN выдает вседа тоже только параметр(щетчик) первой кнопки (даже если жмешь на 2-ю). Наверное есть какой-то спецальный метод обработки этих кнопок? А то не понятно какая графическая кнопка нажата.

Заранее спасибо

Автор: Paha21 10.7.2007, 02:56
Хоть кто-нить знает, как это сделать?

Автор: shamber 10.7.2007, 03:18
 мне кажется NAME=action должны быть различными

Автор: Paha21 10.7.2007, 10:15
Если я беру param от action мне выдается список(будто я нажимаю все кнопки), значение всегда первой кнопки-какую бы я не нажал.
Наверное надо отлавливать не if($action.x) - а что-то другое
Только вот что? smile 

Автор: Paha21 11.7.2007, 13:48
Кто-нить может, посоветовать что-нить полезное?
Пожалуйста

Автор: nitr 11.7.2007, 14:47
Paha21, покажите ваш HTML-код, и скрипт обработки, вообще какой скрипт есть...

Автор: Paha21 11.7.2007, 16:11
#!/usr/bin/perl
use CGI(":standard");

#$actionx=param("action.x"); - не помогает
#$action=param("action"); - не помогает

if($action.x)
{
print"Content-type: text/html \n\n";
@dr=param("dr");
$dy=param("dr");
#$actionx=param("action.x"); 
#$action=param("action"); 
print StartHTML(); #просто теги HTML (<HEAD>,<BODY>,...)
#дальше смотрю какие значения выдаются
print"hello $dу";
$d=@dr;
print"dr-$d;";
for ($i=0;$i<=length(@dr);$i++)
{print @dr[$i];}
#дальше пока не писал безсмысленно-если выдается тока значение первой кнопки/картинки
}

<HTML>
<HEAD></HEAD>
<BODY>
<FORM action=dr.pl method=post>
<TABLE>
<TR><TD><INPUT TYPE=IMAGE NAME=action SRC=foto1.bmp VALUE=1>
<INPUT TYPE=HIDDEN NAME=dr VALUE=1></TD>
<TD><INPUT TYPE=IMAGE NAME=action SRC=foto2.bmp VALUE=2>
<INPUT TYPE=HIDDEN NAME=dr VALUE=2></TD>
<TD><INPUT TYPE=IMAGE NAME=action SRC=foto3.bmp VALUE=3>
<INPUT TYPE=HIDDEN NAME=dr VALUE=3></TD>
<TD><INPUT TYPE=IMAGE NAME=action SRC=foto4.bmp VALUE=4>
<INPUT TYPE=HIDDEN NAME=dr VALUE=4></TD></TR>
</TABLE>
</FORM>
</BODY>
</HTML>

Автор: WERT 12.7.2007, 14:16
Должно работать param(name.x)

А пробовали проверить if (defoned param(name.x)){print param(name.x);}
Что пишет?

Там не двой ные кавячки, а одинарные д.б. param('name.x') вроде как, не помню уже

Автор: amg 12.7.2007, 14:53
Имя переменной $action.x допустимое?
Не эквивалентно ли это конкатенации "$action".'x'?
Соответственно, if ($action.x) всегда true. Может, в этом дело?
Или cgi операцию . переопределяет? (Я просто не знаю)

Автор: Paha21 13.7.2007, 15:39
WERT
param('name.x')
param('name.y')
выдают все время разны числа


amg
 Скорее всего - это всегда true;
но как по другому обработать - я не знаю: поэтому и спрашиваю совета


all
Кто-нибудь, наверняка, сталкивался с обработкой графических кнопок

Автор: Paha21 15.7.2007, 15:10
Может хоть догадки какие-нить есть? 
Буду очень благодарен

Автор: dya 18.7.2007, 00:06
$ENV{'REQUEST_METHOD'}
Посмотрите, что сначала передает ... что бы быть уверенным на 100%

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)