问题
我正在尝试找出将典型HTML表单中的数据提交到PHP文件的最佳方法。数据看起来像这样:
我的解决方案
这就是我的问题所在。使用多维数组是否合适?从上面的示例中可以看出,每个问题的选择数量可能不同。那么为什么不将每个问题的选择数存储到每行选择的第二个插槽中(第一个插槽将是问题文本的字符串):
我觉得这不是一个好方法,因为以后很难改变。有没有办法将对象传递给PHP而不需要JavaScript?
答案 0 :(得分:1)
如果您知道问题ID,则只会发布答案数组
<input type="radio" name="answer[<quest_id>]" value="0">
<input type="radio" name="answer[<quest_id>]" value="1">
<input type="radio" name="answer[<quest_id>]" value="2">
<input type="radio" name="answer[<quest_id>]" value="3">
<input type="radio" name="answer[<quest_id>]" value="4">
发布后你会有答案数组
foreach($_POST['answer'] as $question_id => $answer)
答案 1 :(得分:0)
嗯,您不必非常依赖数字索引,因为您可以使用表单输入名称来构建自己的结构。例如:
...然后通过查看php中的$ _POST获取表单名称,可能使用array_walk()
和split()
array_keys()
_
的回调函数并将它们放在一个新数组中。您可以使用preg_match()
而不是拆分来更轻松地解析问题编号。在我上床睡觉的路上,你可以通过一些反复试验找出答案。
答案 2 :(得分:0)
您的解决方案IMO,是最好的选择 - 我只需删除[*][1]
索引,因为它们的值可以通过以下方式在PHP中轻松计算:
count($nested[$i]) - 1
但是你也可以采用另一种方法:
在PHP中:
foreach ($nested as $question => $answers)
{
foreach ($answers as $answer)
{
}
}