Автор Тема: Флажки да Переключатели  (Прочитано 5503 раз)

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

Оффлайн Wizard7b

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Флажки да Переключатели
« : 13 Декабря 2006, 01:56:13 »
Тут вот такой вопрос!

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

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

Я попытался сделать что то. Но проверяет не правильно.

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Флажки да Переключатели
« Ответ #1 : 13 Декабря 2006, 10:05:02 »
Цитировать
Wizard7b:
Я попытался сделать что то. Но проверяет не правильно.


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

Кстати, по-моему здесь правильнее будет делать не checkbox\'ы, а radiobutton\'ы. Вы ведь используете первые?

Оффлайн Wizard7b

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Флажки да Переключатели
« Ответ #2 : 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

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Флажки да Переключатели
« Ответ #3 : 13 Декабря 2006, 14:02:40 »
Я зделал флажки, потому что вроде как семпатишней смотреться.

Оффлайн Wizard7b

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Флажки да Переключатели
« Ответ #4 : 13 Декабря 2006, 14:09:18 »
Да ! еще ! Флажкам я присваиваю value=2

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

Но почемуто проверяет не правильно. например - Если я не выставляю флажок  первой паре, а в остальных ставлю то скрипт не выдает ошибку.

Оффлайн Wizard7b

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Флажки да Переключатели
« Ответ #5 : 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

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Флажки да Переключатели
« Ответ #6 : 13 Декабря 2006, 19:25:45 »
Wizard7b Я не поленгился написать простеший скрипт который делает то, что тебе нужно. Посмотри как он работает и поробуй в нем разобраться ...




$questions 
= array(
	
=> \'Вопрос 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.= \'Вы можете выбрать только один вариант ответа!
\';
	
	
}
	
}
}
?>
<html>
	
<head>
	
	
<title></title>
	
	
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
	
</head>
	
<body>
	
<p style="color: red"><?=$error?></p>
	
<form action="<?=$_SERVER[\'PHP_SELF\']?>" method="POST">
	
<input type="hidden" name="submit" value="1">
	
<?
	
foreach($questions as $k => $v)
	
{
	
	
echo $v. \' 
	
	
	
<input type="checkbox" name="question[\'.$k.\'][yes]" value="1" \'.($_POST[\'question\'][$k][\'yes\'] == 1 ? \'checked\' : \'\').\'> да 
	
	
	
<input type="checkbox" name="question[\'.$k.\'][no]" value="1" \'.($_POST[\'question\'][$k][\'no\'] == 1 ? \'checked\' : \'\').\'> нет<hr>\';
	
}
	
?>
	
<input type="submit" value="ответить">
	
</form>
	
<?
	

	
?>
	
</body>
</html>

Оффлайн Wizard7b

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Флажки да Переключатели
« Ответ #7 : 13 Декабря 2006, 20:24:46 »
html_coder  ОГРОМНОЕ ТЕБЕ СПСИБО!

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

Это то что нужно! УУУРА!

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Флажки да Переключатели
« Ответ #8 : 14 Декабря 2006, 00:37:21 »
Wizard7b
Ты главное разбирайся, возникнут проблемы пиши в этот топик, помогу чем смогу...

 

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