0

我有一个表单,在通过 POST 提交后,需要根据该字段将其插入两个单独的表中。每个字段都需要添加为自己的行。

想象一个调查;总共有四个部分。对于一个部分中的每个问题,用户选择一个介于 1 和 5 之间的值。每个部分的底部还有一个可选的注释文本区域。

每个问题在数据库中的“问题”表中都有自己的唯一 ID。这些问题包含它所属的部分(“部分”表)的 ID 以供参考。

问题一:

如何将每个答案作为其自己的行插入名为“答案”的表格中,并带有问题的 ID?

“答案”的结构如下所示:

身份证 (AI) | 问题ID | 值(用户提交,1-5)| response_id

问题2:

然后,如何将每个部分的每个注释插入一个名为“notes”的表格中,并带有每个部分的 id?

“笔记”的结构如下:

身份证 (AI) | section_id | 值(用户提交)| response_id

Response_id 是将用户的响应插入到名为“responses”的表中的结果 ID。该表将所有内容联系在一起,以输出每个用户提交的响应的结果。

提前致谢。

4

2 回答 2

1

你可以做一件事可能是这样。您说您对每个问题都有问题 ID,因此当用户选择答案时,请像这样为每个问题命名

name = "question[<?php echo $question_id ?>]"

<select name="cars">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>

对于不只是给简单的名字。当用户提交时,整个 question[$ids] 数组遍历每个 id 并使用问题 id 插入答案表。你需要一点点数组操作。

对于 Notes,您只需在 name 字段中使用 section id 并正常插入数据库。

于 2013-02-08T18:10:31.667 回答
1

您可能希望使用数组来跟踪您需要的 id。您的 HTML 块应类似于以下内容:

<h3>Question '.$questionId.': Your question title here</h3>
<input type="hidden" name="question_id" value="'.$questionId.'" /> //Not necessary, but just to show you that a hidden field can be useful too 
<input type="text" name="answer['.$questionId.']" />

然后,您只需将 $_POST 数据用作常规数组、for 循环或大查询(更好的性能取决于您正在处理的字段/数据的数量)。

这篇文章中有关多维数组的更多信息:使用 php 通过 POST 提交多维数组

于 2013-02-08T18:30:43.047 回答