PHP - 使用POST和foreach循环从多个范围输入获取输入

时间:2015-10-25 18:25:23

标签: php

我正在使用foreach循环遍历php数组来发布范围输入列表。

foreach ($question_array as $a)
{
    $inputName = $a->name;
    print_r('<form action="" method="post">');
    print_r("<input type='range' name=$inputName ...>");
    prin_r('</form>');
}

一旦用户回答了所有问题,他们将按下页面底部的提交按钮,触发重新迭代以检索输入

foreach ($question_array as $a)
{
    $questionName = $a->name;
    $response = $_POST[$questionName];
    print_r("<p>Question $questionName = $response</p>");
}

当用户提交时,会有一个问题列表,其中包含回复空白

q1 = 
q2 =
etc

我已成功传递一个字符串变量作为单个输入的$ _POST的输入名称和参数,所以我相信这不是我的问题。

此外,正确的字符串会进入print_r语句中的$ questionName变量,因此我不认为这会导致问题。

知道我的问题可能是什么?

1 个答案:

答案 0 :(得分:0)

我的问题是,在我的第一个循环的每次迭代中,我都放了一个新的表单标记。

这是错的:

foreach(...)
{
    print_r('<form ...>');
    ...
    print_r('</form>');
}

这是正确的

print_r('<form ...>');
foreach(...)
{
    ...
}
print_r('<input name="submit"...>');
print_r('</form>');

将整个发布循环和提交按钮封装在单个表单标记中时,我的回复正确发布。

感谢@u_mulder和@Mihai回答这个问题