Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 7

Передача данных из формы

23.04.2014, 13:35. Показов 780. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Я недавно изучаю PHP и решил задать вопрос. Имеются два поля для ввода: "Количество вопросов" и "Количество ответов" а также кнопка типа submit. Мне требуется сделать так, чтобы при нажатии на кнопку, на следующей странице появлялось столько полей для ввода, сколько я задал в поле "Количество вопросов" и под каждым из них еще было столько полей, сколько я задавал в "Количестве ответов". По сути должны получиться вопросы и данные к каждому из них варианты ответов. Подскажите, как это проще всего реализовать так, чтобы в последствии еще передать данные из готовых полей в базу данных. Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.04.2014, 13:35
Ответы с готовыми решениями:

Передача данных из формы
Собственно вопрос: Как из одной формы при нажатии кнопки А отправить всё в А.php, а при нажатии кнопки B в B.php Возможно ли это...

Передача данных с формы
Доброго. Сильно камнями не кидайте. Есть страница с товарами и их характеристиками (1.html) и страница оплаты (buy.php), например: ...

Передача данных формы
не совсем понял, что написано в спецификации html:"Multiple controls can have the same name; for example, here we give all the checkboxes...

6
62 / 62 / 11
Регистрация: 31.01.2013
Сообщений: 186
23.04.2014, 14:37
С помощью цикла можно:
PHP
1
2
3
4
5
6
$questionCnt = (int)$_POST['questionCnt']; // принимаем количество полей, и приводим их в тип integer (даже если введут 5 вопросов в переменной $count попадает только число 5
 
// Выводим количество полей
for ($i = 0; $i < $questionCnt; $i++) {
  echo "<input type='text' name='question$i'/><br />";
}
Таким образом мы получили количество полей и в цикле вывели их, а если еще нужны варианты ответа то выводите еще один цикл в этом цикле. )
1
91 / 91 / 23
Регистрация: 02.09.2013
Сообщений: 276
23.04.2014, 15:07
чтобы в последствии еще передать данные из готовых полей в базу данных
А структура базы какая?

Encoder,

Лучше вот так:

PHP
1
echo "<input type='text' name='questions[$i]'/><br />";
Добавлено через 8 минут
Короче вот:

PHP
1
2
3
4
5
6
7
8
9
$qc = (int)$_POST['questions_count'];
$ac = (int)$_POST['answers_count'];
 
for ($i = 0; $i <= $qc; $i++){
    echo '<input type="text" name="questions['.$i.']"><br>';
    for ($j = 0; $j <= $ac; $j++){
        echo '<input type="text" name="answers['.$i.']['.$j.']"><br>';
    }
}
Если, например, у тебя будет 3 вопроса по 3 ответа на каждый, получится как-то так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$questions = array(
    0 => 'Первый вопрос',
    1 => 'Второй вопрос',
    2 => 'Третий вопрос',
);
 
$answers = array(
    0 => array(
        0 => 'Первый ответ на первый вопрос',
        1 => 'Второй ответ на первый вопрос',
        2 => 'Третий ответ на первый вопрос',
    ),
    1 => array(
        0 => 'Первый ответ на второй вопрос',
        1 => 'Второй ответ на второй вопрос',
        2 => 'Третий ответ на второй вопрос',
    ),
    2 => array(
        0 => 'Первый ответ на третий вопрос',
        1 => 'Второй ответ на третий вопрос',
        2 => 'Третий ответ на третий вопрос',
    ),
);
То есть ключ массива $answers = ключу массива $questions.
1
62 / 62 / 11
Регистрация: 31.01.2013
Сообщений: 186
23.04.2014, 16:15
PHP
1
2
3
4
5
6
7
8
9
$i = 1;
foreach ($questions as $value) {
    echo "$value <br />\n";
    $answer = "answer0" . $i;
    foreach($answers[$answer] as $val) {
        echo "<li>$val</li>";
    }
    $i++;
}
Вот так выводим все с массива.

Добавлено через 17 минут
А вот так можем вывести конкретные ответы на конкретный вопрос:

PHP
1
2
3
4
5
$i = 3;
    $answer = "answer0" . $i;
    foreach($answers[$answer] as $val) {
        echo "<li>$val</li>";
}
0
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 7
23.04.2014, 23:45  [ТС]
Спасибо, с выводом количества вопросов разобрался. Но если добавить цикл с количеством ответов, то вывод полей идет как-то некорректно. Выводит произвольное количество полей. Скажем, если я введу один вопрос и один ответ, то на выходе получаю шесть полей. Может я чего-то недопонял...
0
91 / 91 / 23
Регистрация: 02.09.2013
Сообщений: 276
24.04.2014, 07:15
Код в студию
0
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 7
25.04.2014, 14:19  [ТС]
Я вот немного подумал и решил переиначить задание. Скажем, я оставляю данный код:
PHP
1
2
3
4
5
6
$questionCnt = (int)$_POST['questionCnt']; // принимаем количество полей, и приводим их в тип integer (даже если введут 5 вопросов в переменной $count попадает только число 5
 
// Выводим количество полей
for ($i = 0; $i < $questionCnt; $i++) {
  echo "<input type='text' name='question$i'/><br />";
}
он работает и создает нужное количество полей для вопросов. А как сделать так, чтобы для каждого поля вопроса было свое количество вариантов ответов? Скажем, к первому вопросу я предлагаю два ответа, а ко второму - три. Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.04.2014, 14:19
Помогаю со студенческими работами здесь

Передача данных из формы в БД
Вот обработчик &lt;html&gt; &lt;body&gt; &lt;?php if (!$date || !$temp) die (&quot;Не все данные введены.&lt;br&gt; Пожалуйста, вернитесь назад и...

Передача данных формы
Доброе время суток, есть две формы, select и input, нужно что бы то что я выбрал в select появлялось в input для select я...

Передача данных и формы
Доброго дня! Есть страница №1 в ней форма на HTML, там заполняются различные данные, затем информация передается методом GET на страницу...

Передача данных из формы методом GET
Здравствуйте. Делаю скрипт для добавления данных в БД. Есть форма, с помощью которой добавляю данные методом GET. Возник вопрос, мне...

передача данных из формы в jpGraph
Доброго времени суток! у меня есть форма &lt;form action=&quot;action.php&quot; method=&quot;post&quot;&gt; Введите число: &lt;input...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru