Forum Webscript.Ru

Программирование => PHP => Тема начата: Wizard7b от 13 Декабря 2006, 01:56:13

Название: Флажки да Переключатели
Отправлено: Wizard7b от 13 Декабря 2006, 01:56:13
Тут вот такой вопрос!

Хочу на сайте сделать небольшой тест. Страничка имеет вот такой вид - Вопрос далее два флажка ДА, НЕТ. Таким образом у меня на одной странице 14 вопросов. Поставил кнопку ОТВЕТ, все обрабатывает форма. Вот именно она негодяйка причина всех моих бед!!!

Не могу организовать проверку этих самы флажков. Тоесть чтобы форма проверяла сначала ДА если флажка нет переходит к НЕТ, если ничего не предупреждает об этом, если все ок переходит к следущей паре.

Я попытался сделать что то. Но проверяет не правильно.
Название: Флажки да Переключатели
Отправлено: html_coder от 13 Декабря 2006, 10:05:02
Цитировать
Wizard7b:
Я попытался сделать что то. Но проверяет не правильно.


Интересно, а как можно понять, что вы сделали? Я бы очень хотел понять, но я не телепат?

Кстати, по-моему здесь правильнее будет делать не checkbox\'ы, а radiobutton\'ы. Вы ведь используете первые?
Название: Флажки да Переключатели
Отправлено: Wizard7b от 13 Декабря 2006, 14:01:24
Извените!!

Вот один код проверки. Не знаю мне кажется что это не правильно

if($cda < 1)
 {if($cnet < 1)
 {echo($error);}}
elseif($yda < 1)
 {if($ynet < 1)
 {echo($error);}}
elseif($vda < 1)
 {if($vnet < 1)
 {echo($error);}}
elseif($ceda < 1)
 {if($cenet < 1)
 {echo($error);}}
elseif($eda < 1)
 {if($enet < 1)
 {echo($error);}}
elseif($hda < 1)
 {if($hnet < 1)
 {echo($error);}}
elseif($sda < 1)
 {if($snet < 1)
 {echo($error);}}
elseif($vada < 1)
 {if($vanet < 1)
 {echo($error);}}
elseif($hoda < 1)
 {if($honet < 1)
 {echo($error);}}
elseif($esda < 1)
 {if($esnet < 1)
 {echo($error);}}
elseif($uda < 1)
 {if($unet < 1)
 {echo($error);}}
elseif($dda < 1)
 {if($dnet < 1)
 {echo($error);}}
elseif($zda < 1)
 {if($znet < 1)
 {echo($error);}}
elseif($hotda < 1)
 {if($hotnet < 1)
 {echo($error);}}


if ( $ot <= 0 )
{echo($zero); }

elseif( $ot > 13 )
{echo ( $three ); }

elseif( $ot > 9 )
{echo ( $two ); }

elseif( $ot > 5 )
{echo ( $one ); }
Название: Флажки да Переключатели
Отправлено: Wizard7b от 13 Декабря 2006, 14:02:40
Я зделал флажки, потому что вроде как семпатишней смотреться.
Название: Флажки да Переключатели
Отправлено: Wizard7b от 13 Декабря 2006, 14:09:18
Да ! еще ! Флажкам я присваиваю value=2

По идее - скрипт проверяет первый значек, если пусто то второй, если все ок переходит ко второй паре.

Но почемуто проверяет не правильно. например - Если я не выставляю флажок  первой паре, а в остальных ставлю то скрипт не выдает ошибку.
Название: Флажки да Переключатели
Отправлено: Wizard7b от 13 Декабря 2006, 17:45:09
Вот мои труды!  Крутил -крутил! Хрен его знает - правильно не правльно!? Но вроде как работает. Тока вот не так как хотелось бы!

if ($_POST[\'submit\']!=false)
{


if(!isset($cda)) {if(!isset($cnet)) {echo($error); exit;}}
if(!isset($yda)) {if(!isset($ynet)) {echo($error); exit;}}
if(!isset($vda)) {if(!isset($vnet)) {echo($error); exit;}}
if(!isset($ceda)) {if(!isset($cenet)) {echo($error); exit;}}
if(!isset($eda)) {if(!isset($enet)) {echo($error); exit;}}
if(!isset($hda)) {if(!isset($hnet)) {echo($error); exit;}}
if(!isset($sda)) {if(!isset($snet)) {echo($error); exit;}}
if(!isset($vada)) {if(!isset($vanet)) {echo($error); exit;}}
if(!isset($hoda)) {if(!isset($honet)) {echo($error); exit;}}
if(!isset($esda)) {if(!isset($esnet)) {echo($error); exit;}}
if(!isset($uda)) {if(!isset($unet)) {echo($error); exit;}}
if(!isset($dda)) {if(!isset($dnet)) {echo($error); exit;}}
if(!isset($zda)) {if(!isset($znet)) {echo($error); exit;}}
if(!isset($hotda)) {if(!isset($hotnet)) {echo($error); exit;}}

if( $ot <= 4 ){echo($zero); exit; }
elseif( $ot >= 13 ){echo ( $three ); exit; }
elseif( $ot >= 9 ){echo ( $two ); exit; }
elseif( $ot >= 5 ){echo ( $one ); exit; }

}

Выдает сообщение на новой пустой странице. Хотел на той же. Но ни как. Если exit убрать, то сообщение дублируеться.

Может кто посоветует - КАКИМ ЕЩЕ СПОСОБОМ ОСТРАНОВИТЬ ФУНКЦИЮ?
Название: Флажки да Переключатели
Отправлено: html_coder от 13 Декабря 2006, 19:25:45
Wizard7b Я не поленгился написать простеший скрипт который делает то, что тебе нужно. Посмотри как он работает и поробуй в нем разобраться ...




$questions = array(
1 => \'Вопрос 1\',
2 => \'Вопрос 2\',
3 => \'Вопрос 3\',
);

if($_POST[\'submit\'])
{
$error = \'\';

foreach($questions as $num => $question)
{
if(!isset($_POST[\'question\'][$num]))
{
$error.= \'Вы не ответили на вопрос \'.$num.\'!
\';
}

if(count($_POST[\'question\'][$num]) == 2)
{
$error.= \'Вы можете выбрать только один вариант ответа!
\';
}
}
}
?>







" method="POST">

foreach($questions as $k => $v)
{
echo $v. \' 
да
нет
\';
}
?>



?>


Название: Флажки да Переключатели
Отправлено: Wizard7b от 13 Декабря 2006, 20:24:46
html_coder  ОГРОМНОЕ ТЕБЕ СПСИБО!

Ничерта еще не понял! Но пока не разберусь не встану!

Это то что нужно! УУУРА!
Название: Флажки да Переключатели
Отправлено: html_coder от 14 Декабря 2006, 00:37:21
Wizard7b
Ты главное разбирайся, возникнут проблемы пиши в этот топик, помогу чем смогу...