У меня есть форма, которая позволяет дублирование полей.Форма публикуется через php и вставляется в базу данных.Моя проблема заключается в том, что я не могу правильно перебрать массив.Правильно ли я настраиваю форму (правильно ли отформатированы name
) и правильно ли я перебираю массивы?Мне не удалось вставить какие-либо данные.
Хитрость в том, что дублированные поля должны слипаться.
Думайте о полях как о наборе вопросов и ответов.
Каждый вопрос имеет заголовок, текст вопроса и ввод файла.
Каждый ответ имеет заголовок, текст ответа, ввод файла и флажок, чтобы отметить правильный ответ.
У меня name
настроен так:
name='question[1][title]'
name='question[1][text]'
name='question[1][file]'
answer[1][title][]
answer[1][text][]
answer[1][file][]
answer[1][correct][]
PHP для вставки формы выглядит следующим образом:
$insert_question = $db->prepare(
'insert into questions (title, text) values (?, ?)');
$insert_answer = $db->prepare(
'insert into answers (question_id, title, text, correct)'.
' values (?, ?, ?, ?)');
foreach ($_POST['question'] as $q_num => $q)
{
$insert_question->execute(array($q['title'], $q['text']));
$q_id = $db->lastInsertId();
//********************
// insert files
//********************
foreach ($_POST['answer'][$q_num] as $a)
{
$insert_answer->execute(
array($q_id, $a['title'], $a['text'], $a['correct']));
}
}
Извините, что этотакой огромный вопрос.Я работаю над этим уже два дня и у меня кончились идеи.