【发布时间】:2011-05-29 13:48:18
【问题描述】:
我有一个允许重复字段的表单。表单通过 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']));
}
}
很抱歉,这是一个很大的问题。我已经为此工作了两天,但已经没有想法了。
【问题讨论】: