Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > 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) - а что-то другое Только вот что? ![]() |
Автор: 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% |