Forum Webscript.Ru
Программирование => PHP => Тема начата: Wizard7b от 13 Декабря 2006, 01:56:13
-
Тут вот такой вопрос!
Хочу на сайте сделать небольшой тест. Страничка имеет вот такой вид - Вопрос далее два флажка ДА, НЕТ. Таким образом у меня на одной странице 14 вопросов. Поставил кнопку ОТВЕТ, все обрабатывает форма. Вот именно она негодяйка причина всех моих бед!!!
Не могу организовать проверку этих самы флажков. Тоесть чтобы форма проверяла сначала ДА если флажка нет переходит к НЕТ, если ничего не предупреждает об этом, если все ок переходит к следущей паре.
Я попытался сделать что то. Но проверяет не правильно.
-
Wizard7b:
Я попытался сделать что то. Но проверяет не правильно.
Интересно, а как можно понять, что вы сделали? Я бы очень хотел понять, но я не телепат?
Кстати, по-моему здесь правильнее будет делать не checkbox\'ы, а radiobutton\'ы. Вы ведь используете первые?
-
Извените!!
Вот один код проверки. Не знаю мне кажется что это не правильно
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 ); }
-
Я зделал флажки, потому что вроде как семпатишней смотреться.
-
Да ! еще ! Флажкам я присваиваю value=2
По идее - скрипт проверяет первый значек, если пусто то второй, если все ок переходит ко второй паре.
Но почемуто проверяет не правильно. например - Если я не выставляю флажок первой паре, а в остальных ставлю то скрипт не выдает ошибку.
-
Вот мои труды! Крутил -крутил! Хрен его знает - правильно не правльно!? Но вроде как работает. Тока вот не так как хотелось бы!
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 убрать, то сообщение дублируеться.
Может кто посоветует - КАКИМ ЕЩЕ СПОСОБОМ ОСТРАНОВИТЬ ФУНКЦИЮ?
-
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.= \'Вы можете выбрать только один вариант ответа!
\';
}
}
}
?>
=$error?>
?>
-
html_coder ОГРОМНОЕ ТЕБЕ СПСИБО!
Ничерта еще не понял! Но пока не разберусь не встану!
Это то что нужно! УУУРА!
-
Wizard7b
Ты главное разбирайся, возникнут проблемы пиши в этот топик, помогу чем смогу...