[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите обработать тест из checkbox
yagodova
стала создавать тест на php и столкнулась с тем. что checkbox , заданные по форме:
<font size=4><i>вопрос № 3</i></font>
<b>Отметьте устройства ввода информации:</b><br>
<input type="checkbox" name="bcd[]" value="0"> Принтер
<input type="checkbox" name="bcd[]" value="1"> Сканер
<input type="checkbox" name="bcd[]" value="0"> Монитор
<input type="checkbox" name="bcd[]" value="1"> Клавиатура
<input type="checkbox" name="bcd[]" value="1"> Мышь
</pre>
не обрабатываются. мне нужно. чтобы в случае. если флажки не проствлены, выдавалось напоминание, а ели проставлены. то ставить количество верных ответов. Сделать это надо без использования MySQL
Спасибо



Спустя 48 минут, 57 секунд (15.11.2009 - 13:33) stepan написал(а):
это точто должно у тебя получится
<font size=4><i>вопрос № 3</i></font>
<b>
Отметьте устройства ввода информации:</b><br>
<input
type="checkbox" name="bcd-1" value="0"> Принтер
<input type="checkbox" name="bcd-2" value="1"> Сканер
<input type="checkbox" name="bcd-3" value="0"> Монитор
<input type="checkbox" name="bcd-4" value="1"> Клавиатура
<input type="checkbox" name="bcd-5" value="1"> Мышь
</pre>


делай это через массив типа
for ( $i = 1; $f <= $t; $i ++ )
{
echo '<input type="checkbox" name="bcd-'.$i.'" value="'.$var.'">'.$name;
}

Спустя 1 час, 59 минут, 38 секунд (15.11.2009 - 15:33) ElfSam написал(а):
Не обрабатывается? Выложи код своего обработчика для начала.
Ну и name, как тебе уже подсказали, должны быть у каждого элемента свое

Спустя 2 часа, 34 минуты, 21 секунда (15.11.2009 - 18:07) yagodova написал(а):
код HTML:
<font size=4><i>вопрос № 3</i></font>
<b>Отметьте устройства ввода информации:</b><br>
<input type="checkbox" name="bcd1" value=0> Принтер
<input type="checkbox" name="bcd2" value=1> Сканер
<input type="checkbox" name="bcd3" value=0> Монитор
<input type="checkbox" name="bcd4" value=1> Клавиатура
<input type="checkbox" name="bcd5" value=1> Мышь
а код обработчика взяла:
<?php
$j=0;
if ((!isset($bcd1))&&

(!isset($bcd2))&&(!isset($bcd3))&&(!isset($bcd4))&&(!isset($bcd5)))

echo "<b>отметьте флажки!</b>";
else{
if($bcd1 == "0") $j=$j+0;

if($bcd2 == "1") $j=$j+1;

if($bcd3 == "0") $j=$j+0;

if($bcd4 == "1") $j=$j+1;

if($bcd5 == "1") $j=$j+1;
echo "По вопросу № 3 у вас <b> $j</b> правильных ответов";
}

?>
Хотя работает, но мне кажется получилось слишком громоздко. так как только начинаю изучать PHP, то подскажите, как сократить запись? unsure.gif

Спустя 3 часа, 51 минута, 41 секунда (15.11.2009 - 21:59) sergeiss написал(а):
Забудь всё, что тебе уже сказали в этой теме, и сделай уникальные value, но оставь одно имя у чек-боксов.
Тогда ты сможешь пройти по массиву (взяв его из POST), и получить value тех чек-боксов, что были выбраны.

Второе. Ты подразумеваешь, что у тебя установлены глобальные переменные. Но это, скорее всего, не так smile.gif Поэтому твоя проверка if ((!isset($bcd1))&&... всегда выдаст "истина", т.к. эта переменная не установлена + отрицание.

Спустя 3 месяца, 10 дней, 11 часов, 44 минуты, 58 секунд (26.02.2010 - 09:44) Гость написал(а):
Воспользуйтусь готовым решением http://www.schoolnuke.ru/.

Спустя 10 часов, 57 минут, 19 секунд (26.02.2010 - 20:41) yagodova написал(а):
Спасибо всем за помощь. Всё получилось. Благодарю. biggrin.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.