3 / 3 / 0
Регистрация: 10.12.2013
Сообщений: 32
|
|||||||||||
1 | |||||||||||
Метот $_POST при работе с динамическими именами25.03.2015, 20:59. Показов 1652. Ответов 17
Метки нет (Все метки)
Всем привет! Нужна помощь в таком вопросе.
На странице размещен тест, вопросы появляются по одному, ответы выполнены в виде радиогрупп. Имена радиогрупп все разные. Поэтому имя конкретной радиогруппы присваивается переменной. В связи с этим не погу правильно написать запрос на получение данных из формы с моей радиогруппой.
0
|
25.03.2015, 20:59 | |
Ответы с готовыми решениями:
17
Ошибка при работе с динамическими компонентами Ошибке при работе с динамическими массивами Выделение и очищение памяти при работе с динамическими строками Операции с указателями. Использование указателей при работе с динамическими массивами |
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
25.03.2015, 21:55 | 2 |
А зачем вообще делать разные названия в HTML? В этом нет смысла, используйте статичное название.
0
|
3 / 3 / 0
Регистрация: 10.12.2013
Сообщений: 32
|
|
25.03.2015, 21:57 [ТС] | 3 |
Был такой вариант. Но в последствии хотелось бы выводить вс вопросы и сразу, тут, как не крути имена будут разные, а кол-во вопросов практически неограничено.
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
25.03.2015, 22:53 | 4 |
Ок. Но всё-равно непонятно, зачем нужна $rado_name. Что там должно лежать и зачем потом использоваться?
0
|
3 / 3 / 0
Регистрация: 10.12.2013
Сообщений: 32
|
|
25.03.2015, 22:56 [ТС] | 5 |
Возможно я пишу кривой код. Пока учусь. В $radio_name должно храниться имя радиогруппы с текущим вопросом. Поместить имя в $padio_name - это легко, а вот обраться по этому имени не могу, ибо конструкция $_POST[$rado_name]; записана неверно.
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
||||||||||||||||
26.03.2015, 08:04 | 6 | |||||||||||||||
KDG94, а, кажется, понял вас.
Я бы использовал массивы. В общем случае массив передаётся так:
Код примерно такой:
Теперь все пришедшие значения (т.е. подходит и для вывода всех вопросов сразу) будут лежать в массиве $_POST['options']. Получить названия можно так:
1
|
3 / 3 / 0
Регистрация: 10.12.2013
Сообщений: 32
|
||||||
26.03.2015, 14:41 [ТС] | 7 | |||||
Спасибо. На счет форм учту. Буду разбираться и пробовать.
Добавлено через 1 час 13 минут Попробовал ваш код. Ругается на строку
Не пойму в чем ошибка.
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
||||||
26.03.2015, 15:07 | 8 | |||||
KDG94, данные не приходят или приходят неправильно. Проверьте, что выводит такой код?
0
|
3 / 3 / 0
Регистрация: 10.12.2013
Сообщений: 32
|
||||||
26.03.2015, 17:06 [ТС] | 9 | |||||
Первый рад вывел "Данные не пришли."
После несколько раз обновил страницу, перезапустил Денвер, все пошло нормально. Как я понимаю что-то лагает? Добавлено через 1 час 54 минуты Сейчас стал окончательно доделывать и столкнулся со следующим Так и есть. Но как теперь по этим именам получить значение из радиогрупп?
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
26.03.2015, 17:11 | 10 |
0
|
23 / 23 / 17
Регистрация: 14.02.2014
Сообщений: 176
|
|
26.03.2015, 17:16 | 11 |
Если вам интересно, то посмотрите как можно немного по другому решить вашу проблему) http://webformyself.com/sozdan... ya-urok-1/
1
|
3 / 3 / 0
Регистрация: 10.12.2013
Сообщений: 32
|
|
26.03.2015, 17:25 [ТС] | 12 |
Суть такая:
1) SQL-запросами я заполняю форму с радиогруппами, а именно: присваиваю значения, выводимый текст, может иногда придется присваивать имена 2) Получаю имена всех радиогрупп 3) По нажатии кнопки "Следующий вопрос" я должен получить значение из своей формы с радиогруппами. И тут сложность. 4) Сравнивать полученные ответы с правильными Проблема в том, что не могу получить значение из формы. Раньше все формы обрабатывал методом $_POST['']. Просто в [''] писал имя радигруппы и все. Сйчас имя радиогруппы хранится в переменной и такая запись по просту не понимается в PHP Добавлено через 5 минут Обязательно посмотрю, возможно что-то и позаимствую. Спасибо Просто сроки зажимают, а работы непочатый край. И для меня списать готовое не очень интересно, хочется реализовать и понять ту схему, которую сам придумал. возможно более простой вариант ляжет в последующую версию) В целом у меня система многоуровневая: выбираем дисциплину тему вопрос отвечаем и узнаем оценку
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
26.03.2015, 18:11 | 13 |
Покажите, как вы выполняете 4-ый пункт, т.е. каким запросом проверяете, правильный ответ или нет.
0
|
3 / 3 / 0
Регистрация: 10.12.2013
Сообщений: 32
|
||||||
26.03.2015, 18:24 [ТС] | 14 | |||||
Я еще не дошел до 4-го пункта, по тому, что не могу получить данные из моей формы с радиогруппами.
Уже переделал, чтобы получать вопросы сразу из всех форм (вопросы выводятся разом). Выводится переменная с именем радиогрупп. Имена совпадают с именами из форм. Но метот $_POST выдает пустоту. На счет сравнения, то при чтении из БД правильные ответы хочу помещать в массив, а потом просто сравнивать массив ответов пользователя и правильные ответы. Прилагаю код, правда в нем пока много мусора. И некрасивых выводов, потом поправлю.
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
||||||
26.03.2015, 18:46 | 15 | |||||
Хорошо.
Допустим, есть таблица `answers`, в которой хранятся все ответы на тесты. Помимо остальных столбцов, есть 3 столбца: id - номер ответа (его вы подставляете в input - <?=$row['number_answer']?>) is_true - если его значение 1 - ответ правильный, если 0 - неправильный. group - здесь лежит название группы тестов, например 'test1', 'test2' и т.п. Тогда решить вашу задачу можно так:
0
|
3 / 3 / 0
Регистрация: 10.12.2013
Сообщений: 32
|
||||||
26.03.2015, 19:04 [ТС] | 16 | |||||
Получается следующая картина:
мои поля: number_answer // он же id answer // формулировка вопроса right_answer //правильный ответ, хранит любые числа, а если не правильный, то поле остается пустым number_question // связь с к-л одним вопросом Немного исправил код под себя, вроде все правильно, но ругается на "syntax error" в строке с запросом к БД
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
26.03.2015, 19:36 | 17 |
Потому что вы поставили закрывающую кавычку до IS NOT NULL. Посмотрите ваш код, форум подсвечивает, где кончается текст.
Да, в $_POST['options'] лежит массив всех значений. Т.е. $_POST['options']['test1'] - здесь лежит ответ на первый вопрос.
0
|
3 / 3 / 0
Регистрация: 10.12.2013
Сообщений: 32
|
|
26.03.2015, 19:48 [ТС] | 18 |
Так вроде работает. Но неверно определяет правильный - неправильный.
Допустим есть 2 вопроса в каждом 2 ответа. В1О1 В1О2 - это правильный ответ В2О1 - это правильный ответ В2О2 Однако, когда я отмечаю эти ответы, проходит только первый вопрос. Если во втором отмечаю правильным второй вариант, то оба отображаются правильными.
0
|
26.03.2015, 19:48 | |
26.03.2015, 19:48 | |
Помогаю со студенческими работами здесь
18
Важно:207 ошибка при работе с типизированными файлами и динамическими массивами Распарсить Json с динамическими именами Как взять данные из чекбоксов с динамическими именами в цикле? Ошибка в работе в цикле с динамическими массивами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |