Автор Тема: Проверка checkbox  (Прочитано 3436 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Проверка checkbox
« : 08 Января 2004, 10:06:43 »
Получаю из формы переменную var (checkbox), но меня смущает одно - я проверяю эту переменную нижеуказанной конструкцией, нельзя ли проверить её немного проще?

#!/usr/bin/perl -w

use CGI;
use strict;
my $query = new CGI;
my $var = $query -> param(\'var\');
if (!$var) {$var = \'no\'}
elsif ($var eq \'on\') {$var = \'yes\'}
else {$var = \'no\'}

print "Content-type: text/html; charset=windows-1251\\n\\n";
print qq "$var";
exit;

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Проверка checkbox
« Ответ #1 : 08 Января 2004, 10:56:32 »
$var = (defined $var && $var eq \'on\') ? \'yes\' : \'no\';
0 OK, 0:1

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Проверка checkbox
« Ответ #2 : 08 Января 2004, 11:06:19 »
ondr
Спасибо!

[OFF] но правильней все же будет:

$var = (defined $var && $var ne \'on\') ? \'no\' : \'yes\';[/OFF]

P.S. Решение не правильное!
« Последнее редактирование: 08 Января 2004, 11:24:30 от Phoinix »

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Проверка checkbox
« Ответ #3 : 08 Января 2004, 11:14:18 »
незнаю незнаю
с модулем CGI не общаюсь, но сильно сомневаюсь, что он всегда возвращает определенное значение ;) У тебя в логике возможно ошибка.
0 OK, 0:1

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Проверка checkbox
« Ответ #4 : 08 Января 2004, 11:23:30 »
ondr
Ага стормозил...

Я почему то решил, что defined возвращает TRUE если переменная не определена...

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Проверка checkbox
« Ответ #5 : 08 Января 2004, 18:33:19 »
Еще вопрос в догонку:

$var = (defined $var && $var eq \'on\') ? \'yes\' : \'no\';

идентично ли:

$var = ($var && $var eq \'on\') ? \'yes\' : \'no\';

?

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Проверка checkbox
« Ответ #6 : 09 Января 2004, 09:57:49 »
Вобще нет, но в твоем случае сгодится.
Во втором случае ты проверяешь истину (определенно и значение не \'0\')
0 OK, 0:1

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Проверка checkbox
« Ответ #7 : 09 Января 2004, 10:18:58 »
ondr
А мне собственно это и нужно, иначе он в логи пишет предупреждения.

 

Sitemap 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 26 27 28