|
|
|
| Я понимаю, что код не совсем правильный, но улучшить его не получается
Подскажите как сделать, если ответили не на все вопросы выдавалось сообщение об ошибке.
Хотелось бы получить, что-то подобное http://www.softtime.ru/tests/tests.php
<form action="" method="post">
Вопрос 1<br>
<input type=radio name='v1' value='10'>«да»<br>
<input type=radio name='v1' value='5'>«не знаю»<br>
<input type=radio name='v1' value='0'>«нет»<br>
<HR>
Вопрос 2<br>
<input type=radio name='v2' value='10'>«да»<br>
<input type=radio name='v2' value='5'>«не знаю»<br>
<input type=radio name='v2' value='0'>«нет»<br>
<HR>
Вопрос 3<br>
<input type=radio name='v3' value='10'>«да»<br>
<input type=radio name='v3' value='5'>«не знаю»<br>
<input type=radio name='v3' value='0'>«нет»<br>
<HR>
<br>
<input type="reset" name="reset" value="очистить">
<input type="submit" name="go" value="принимаю">
</form>
<?
$t=$v1+$v2+$v3;
if ($t<=0) echo "Ответ 1";
elseif ($t<=15) echo "Ответ 2";
elseif ($t<=25)echo "Ответ 3";
else echo "Ответ 4";
?>
|
| |
|
|
|
|
|
|
|
для: dedev
(31.10.2006 в 15:03)
| | Примерно так:
* * * * * *
форма
* * * * * *
<?
if (isset($_POST['v1']) && isset($_POST['v2']) && isset($_POST['v3']))
{
$t = $_POST['v1'] + $_POST['v2'] + $_POST['v3'];
if ($t<=0) echo "Ответ 1";
elseif ($t<=15 && $t>0) echo "Ответ 2";
elseif ($t<=25 && $t>15) echo "Ответ 3";
else echo "Ответ 4";
}
else echo "Вы ответили не на все вопросы";
?>
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(31.10.2006 в 15:20)
| | Спасибо работает
Добавил проверку на нажатие кнопки
А нельзя как-то унифицировать предложенный код, чтоб он был независим от количества вопросов, потому, что вопросов может быть и 10 и 40 и 100, чтоб в коде менять только варианты ответов, если можно, а так огромное спасибо все очень хорошо работает
<?
if (isset($go))
if (isset($_POST['v1']) && isset($_POST['v2']) && isset($_POST['v3']))
{
$t = $_POST['v1'] + $_POST['v2'] + $_POST['v3'];
if ($t<=0) echo "Ответ 1";
elseif ($t<=15 && $t>0) echo "Ответ 2";
elseif ($t<=25 && $t>15) echo "Ответ 3";
else echo "Ответ 4";
}
else echo "Вы ответили не на все вопросы";
?>
|
| |
|
|
|
|
|
|
|
для: dedev
(31.10.2006 в 17:01)
| | Что-то ничего в голову путного не приходит ...
Разве что: в форме сделать скрытое поле, где указывать количество вопросов, а потом в обработчике проверять:
<?php
$pk = true;
for ($i = 1; $i <= $_POST['skrytoe_pole_formi']; $i++)
if (!isset($_POST["v$i"]))
{
$pk = false;
break;
}
if ($pk)
{
* * * отмечены все * * *
}
else
{
* * *
}
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(31.10.2006 в 17:37)
| | Сделал вот так и он мне на все комбинации ответов выдает ОТВЕТ №4
Неуверен, что правильно сделал
<?
$pk = true;
for ($i = 1; $i <= $_POST['skrytoe_pole_formi']; $i++)
if (!isset($_POST["v$i"]))
{
$pk = false;
break;
}
if ($pk)
{
if (isset($goo)) {
if ($pk<=0) echo "Ответ 1";
elseif ($pk<=1 && $pk>10) echo "Ответ 2";
elseif ($pk<=11 && $pk>31) echo "Ответ 3";
else echo "Ответ 4";
} }
else
{
echo "Вы ответили не на все вопросы";
}
?>
|
| |
|
|
|