【问题标题】:Multiple radio button array for php formphp表单的多个单选按钮数组
【发布时间】:2014-01-24 10:49:51
【问题描述】:

我是新手。我正在研究 Web 开发,并且必须为问卷创建一个 php 响应表单,然后将其输入到数据库中。我在使用单选按钮时遇到问题。我无法创建正确的代码来创建一个数组并在响应表单/页面中显示答案。

这是我的代码:

<form name="modulequestionnaire" method="post" action="tania.responseform.php" />

<p><i>Rate each question from 6 to 1, six being strongly 
agree and one being strongly disagree.</i></p>

1. I think the module guide/student handbook provided enough information about the 
module content, organisation and assessment.<br/>

6<input type="radio" name="answer[1]" value="6"> 5<input type="radio" name="answer[1]" value="5"> 
4<input type="radio" name="answer[1]" value="4"> 3<input type="radio" name="answer[1]" value="3"> 
2<input type="radio" name="answer[1]" value="2"> 1<input type="radio" name="answer[1]" value="1">
</p>

2.The module was well organised.<br/>

6<input type="radio" name="answer[2]" value="6"> 5<input type="radio" name="answer[2]" value="5"> 
4<input type="radio" name="answer[2]" value="4"> 3<input type="radio" name="answer[2]" value="3"> 
2<input type="radio" name="answer[2]" value="2"> 1<input type="radio" name="answer[2]" value="1"> 
</p>

3.The Learning Resource Centre provided adequate materials for the module.<br/>

6<input type="radio" name="answer[3]" value="6"> 5<input type="radio" name="answer[3]" value="5"> 
4<input type="radio" name="answer[3]" value="4"> 3<input type="radio" name="answer[3]" value="3"> 
2<input type="radio" name="answer[3]" value="2"> 1<input type="radio" name="answer[3]" value="1"> 
</p>

我知道答案可能与 isset 函数有关,但我不知道如何编写代码。 有人可以在这里教我或帮助我吗?

【问题讨论】:

  • 你能发布你现有的 PHP 尝试吗?
  • @HC_ 我想为上述问题创建答案。
  • @sjagr 类似这样,但它不起作用。:";休息;案例2:打印“5
    ”;休息;案例3:打印“4
    ”;休息;案例4;打印“3
    ”;休息;案例5;打印“2
    ”;休息;案例6;打印“1
    ”;休息;}; ?>
  • 请在您的问题中而不是在评论中发布您的尝试。人们也更容易阅读。 @taniakeira
  • @Fred-ii- 好的,对不起,我是新手。

标签: php html arrays forms radio-button


【解决方案1】:

当您不确定如何处理已设置的 HTML 标记时,您应该 var_dump($_POST) 发送到 PHP 处理程序页面的值,这样您就知道格式会是什么样子,这样您可以从那里继续。

当我创建您的 HTML 并使用 var_dump 和一些随机选择对其进行测试时,输出是

array(2) { ["answer"]=> array(3) { [1]=> string(1) "5" [2]=> string(1) "3" [3]=> string(1) "4" } ["submit"]=> string(6) "Submit" }

注意$_POST['answer'] 变量中有一个数组。所以你应该 foreach 在该数组中的每个元素上处理每个相应的值:

foreach ($_POST['answer'] as $answer) {
    // do stuff with the answer
}

如果您需要使用您在POST 数组中定义的答案编号,您可以使用密钥foreach

foreach ($_POST['answer'] as $answerNum => $answer) {
    // do stuff with $answerNum and $answer
}

当然,您可以通过号码直接访问您的答案:

if (!empty($_POST['answer'][1])) { // To ensure that the value is being sent
    // do stuff with $_POST['answer'][1]
}

【讨论】:

  • 非常感谢这位先生。
【解决方案2】:

我不认为这正是您想要做的。相反,如果您给这三个问题起不同的名称:

<form name="modulequestionnaire" method="post" action="tania.responseform.php" />

<p><i>Rate each question from 6 to 1, six being strongly 
agree and one being strongly disagree.</i></p>

1. I think the module guide/student handbook provided enough information about the 
module content, organisation and assessment.<br/>

6<input type="radio" name="answer1" value="6"> 5<input type="radio" name="answer1" value="5"> 
4<input type="radio" name="answer1" value="4"> 3<input type="radio" name="answer1" value="3"> 
2<input type="radio" name="answer1" value="2"> 1<input type="radio" name="answer1" value="1">
</p>

2.The module was well organised.<br/>

6<input type="radio" name="answer2" value="6"> 5<input type="radio" name="answer2" value="5">



4<input type="radio" name="answer2" value="4"> 3<input type="radio" name="answer2" value="3"> 
2<input type="radio" name="answer2" value="2"> 1<input type="radio" name="answer2" value="1"> 
</p>

3.The Learning Resource Centre provided adequate materials for the module.<br/>

6<input type="radio" name="answer3" value="6"> 5<input type="radio" name="answer3" value="5"> 
4<input type="radio" name="answer3" value="4"> 3<input type="radio" name="answer3" value="3"> 
2<input type="radio" name="answer3" value="2"> 1<input type="radio" name="answer3" value="1"> 
</p>

然后在 php 中,您需要做的就是使用 $_POST 变量来查找值

<?php 
    echo $_POST['answer1'];
    echo $_POST['answer2'];
    echo $_POST['answer3'];
?>

【讨论】:

  • 这可行,但源于 OP 需要学习的有关创建和处理 POST 数组的课程的目的。使用POST 数组编码特别有用,因为如果代码正确,这意味着添加单个问题的工作量会更少。
  • 没错,我想我个人会远离 post 数组,因为它们很快就会变得混乱。当我有不同数量的输入时,我才真正使用后数组,例如多选,但我不确定在这种情况下为什么要使用数组。除了为了上课...好吧,你赢了这一轮:)
猜你喜欢
  • 2014-11-11
  • 2010-12-11
  • 2016-06-12
  • 1970-01-01
  • 2013-06-15
  • 2012-04-18
  • 2019-10-04
  • 1970-01-01
  • 2014-07-06
相关资源
最近更新 更多