![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
godvinn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 4.4.2008 Где: possibility of mo ving to Kyiv Репутация: 1 Всего: 1 |
hi. пишу тестирование на php. вопрос состоит в следующем у меня есть форма:
как мне сделать чтобы после нажатия кнопки каждому вопросу присваивался его массив то есть чтобы выглядело например так 95 = 1,2 Ans1 Ans2 96 = 1,3 или Ans1 Ans3 чтобы потом можно было сравнить с массивом который находится в БД. Тоесть надо както присваивать каждому вопросу id и потом собирать по этому id все ответы! Это сообщение отредактировал(а) godvinn - 15.9.2008, 07:46 |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
а-а-а, факмоймозг!
как ты догадался выделять пхп-тэгами каждую строчку? уверен, никто даже близко такого не советовал и не писал зачем эти бессмысленные "иначе" <?php }else{} ?> ? они же ничего не делают это я так понимаю, ты пытаешься защититься от не существующих переменных if(strlen($row['three']) > 0) ? не поможет, лучше писать: if(isset($row['three'])) почему, если у тебя всё это прокручивается в цикле, поля имеют одинаковые имена: <input type="checkbox" name="Ans1" value="1" /> - на каждой итерации будет создаваться поле с именем Ans1, в итоге соберётся всего лишь одно значение ну и наконец, можно более осмысленно, что за задача стоит и как ты её выполняешь? |
|||
|
||||
godvinn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 4.4.2008 Где: possibility of mo ving to Kyiv Репутация: 1 Всего: 1 |
написать систему тестирования. То есть есть админка через которую добавляются вопросы, БД выглядит следующим образом
ID QuestID - вопрос варианты ответов OneQ TwoQ ThreeQ FourQ TrueAns (это поле содержит правильные ответы, только их может быть больше чем один, и я перед тем как их вносить преобразую их в строку, то есть если правильные ответы 2,3 то в бд они так и будут внесены только разделены какимто символом (делаю через функцию implode())). но это все я реализовал теперь проблемка с выводом* может лучше в полях имена <input type="checkbox" name="test[]" value="1" /> заменить на массив? и потом собирать все в массив, хотя наверное мы не сможем точно знать для какого id передан массыв? вот с этим и вся задача. |
|||
|
||||
SDEVIL |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 30.10.2006 Репутация: 1 Всего: 1 |
godvinn, попробуй сначала создать страницу используя только HTML как она должна выглядеть(проще говоря сверстай сначала страничку), а пото уже пихай туда код PHP, вот увидишь что многое вообще не нужно, и сразу станет понятней.
А по поводу формирования массива ответов, то попробуй задавать элементам value в виде n_a_a_....a где n- номер вопроса, а - номер ответа, а потом просто на сервере парси эти значения. --------------------
Подпись сбежала к другому юзверю.... |
|||
|
||||
godvinn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 4.4.2008 Где: possibility of mo ving to Kyiv Репутация: 1 Всего: 1 |
что ты имеешь в виду? ну допустим я пишу <input type="checkbox" name="test[]" value="<?php echo $row['id'];?>"_1 /> ....... * ты имеешь в виду использовать parse_str()? |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
ну, смысл тестирования в принципе понятен итак, а вот как это делается - больше в тумане.
скажем так, ты хочешь страницу с несколькими вопросами и группой ответов на них. причём можно выбирать несколько. нужны комбобоксы, которые можно выбирать и должна быть кнопка для отправления на сервер. затем выводится страница с результатами. так? что нам надо? таблица БД в которой будут вопросы: questions id | text таблица БД в которой будут ответы: answers id | id_q | text | status где в статусе прописываем результат 1 - значит правильный ответ, 0 (или NULL) - неправильный вывод:
на приёме, раз знаком с функцией implode(), не составит труда разобрать пришедший ответ из переменной $_POST['q2a3'] , просто прочитав массив $_POST в цикле: foreach($_POST as $k => $v) {} и разделив ответ explode('a', $k); Это сообщение отредактировал(а) bars80080 - 15.9.2008, 16:40 |
|||
|
||||
godvinn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 4.4.2008 Где: possibility of mo ving to Kyiv Репутация: 1 Всего: 1 |
foreach($_POST as $k => $v) {}
и разделив ответ explode('a', $k); как отделить id в один массив а ответы в другой или как сделать вывод был наподобие вот такого id true 1 => 2,3 2 => 3 3 => 4 если делать так как ты говоришь то просто можно только вывести например вот так: 1 2 1 3 2 3 3 3 (это нюансы с выводом смысл я думаю понятен) |
|||
|
||||
bars80080 |
|
||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
да нет, тебе придут несколько переменных, где информация будет содержаться только в имени
кстати, я сейчас подумал и наверное, лучше было бы задать имена ответов так:
тогда тебе придёт массив answ, который можно будет разобрать следующим образом:
Это сообщение отредактировал(а) bars80080 - 15.9.2008, 22:46 |
||||
|
|||||
godvinn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 4.4.2008 Где: possibility of mo ving to Kyiv Репутация: 1 Всего: 1 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |