checkbox数组只返回一个结果

时间:2012-08-20 03:04:51

标签: php html forms

我已经构建了一个具有复选框输入数组的表单(保存到数组中)。但是,当我发布它并检索结果时,它只提供最后的选择。

<input type="checkbox" value="Friendly" name="quest[9]"> Friendly<br>
<input type="checkbox" value="Attentive" name="quest[9]"> Attentive<br>
<input type="checkbox" value="Enthusiastic" name="quest[9]"> Enthusiastic<br>
<input type="checkbox" value="Understanding" name="quest[9]"> Understanding<br>
<input type="checkbox" value="Well Mannered" name="quest[9]"> Well Mannered<br>
<input type="checkbox" value="Efficient" name="quest[9]"> Efficient<br>
<input type="checkbox" value="Genuine" name="quest[9]"> Genuine<br>

例如,假设我选择了“友善”,“高效”和“真实”。

当我将其发布到PHP文档并运行

print_r($_POST['quest']);

我只收到

Array ( [9] => Genuine )

返回所以“正版”是我回来的唯一项目。有没有办法来解决这个问题?我做错了什么?

这是调查的第9个问题,所以不幸的是,更改名称不是一个选择。有没有办法将结果组合到用逗号分隔的单个数组?我可以在php端始终explode

3 个答案:

答案 0 :(得分:3)

您的所有复选框都具有相同的名称,使其唯一

<input type="checkbox" value="Friendly" name="quest[3]"> Friendly<br>
<input type="checkbox" value="Attentive" name="quest[4]"> Attentive<br>
<input type="checkbox" value="Enthusiastic" name="quest[5]"> Enthusiastic<br>
<input type="checkbox" value="Understanding" name="quest[6]"> Understanding<br>
<input type="checkbox" value="Well Mannered" name="quest[7]"> Well Mannered<br>
<input type="checkbox" value="Efficient" name="quest[8]"> Efficient<br>
<input type="checkbox" value="Genuine" name="quest[9]"> Genuine<br>

或使用空方括号,因此php会将输入视为数组

<input type="checkbox" value="Friendly" name="quest[]"> Friendly<br>
<input type="checkbox" value="Attentive" name="quest[]"> Attentive<br>
<input type="checkbox" value="Enthusiastic" name="quest[]"> Enthusiastic<br>
<input type="checkbox" value="Understanding" name="quest[]"> Understanding<br>
<input type="checkbox" value="Well Mannered" name="quest[]"> Well Mannered<br>
<input type="checkbox" value="Efficient" name="quest[]"> Efficient<br>
<input type="checkbox" value="Genuine" name="quest[]"> Genuine<br>

答案 1 :(得分:3)

在名称中使用quest []而不是任务[9]。 也在php部分使用它来添加多个选择。

<?php
$quest = implode(',',$_post['quest']);
print_r($quest);
?>

快乐的编码!!

答案 2 :(得分:2)

我发布了一个关于你对前一个评论的新答案:

因为你必须将quest [9]作为复选框数组的组织..

您可能想尝试将其设为更复杂的数组,其中每个<input>都有name="quest[9][1]"name="quest[9][2]"等等。

通过

找到内容
print_r($_POST['quest']);

再次