我正在创建一个显示包含16个问题的表单的网页,每行输入如下:
<li>*question 1*</li>
<input type="text" name="answer1" style="height: 40px;" size="50" dir="rtl">
<li>*question 2*</li>
<input type="text" name="answer2" style="height: 40px;" size="50" dir="rtl">
依此类推 - 我有16条(html)这样的行 (顺便说一句,有没有办法防止这个代码重复?这段代码闻起来......)最后一个提交&#39;按钮。
我的php脚本应该收到这些答案,并将每个答案放在一个名为&#34; answer(i)&#34;的变量中。例如,我可以写出16行这类:
if (isset($_POST['submit'])) {
$answer1 = $_POST['answer1'];
$answer2 = $_POST['answer2'];
...ect.
...
}
这(也)感觉就像很多代码重复。有没有办法让它更加通用和高效,这样如果我想增加一些新的问题,我不会再次通过这一切了? 我是PHP和HTML的新手,我虽然宣布了一些函数并且每次都调用它们,但是当我搜索关键字如&#39; html函数&#39;我没有找到并帮助提供信息。 编辑:答案标签可能与答案1,答案2 ...&#39;不同。并且可以是一组不同的单词(&#39;年龄&#39;,&#39;性别&#39; ...)
答案 0 :(得分:-1)
您可以运行循环来浏览POST数组并将信息提取到另一个数组中。
foreach ($_POST as $k => $v) {
$$k = $v;
}
这会将所有$ _POST数据放入与生成它们的表单字段相同的PHP变量中(请注意,您也可以通过触发表单的按钮获得$ submit)。
答案 1 :(得分:-1)
这是你在找什么?
foreach (range(0,16) as $i)
{
${'answer'.$i} = $_POST['answer'.$i];
}
或使用extract()
,如果您在$_POST
上申请,$_POST
变量中的键会被指定为变量。
Here是官方文档。
答案 2 :(得分:-1)
对于HTML,请使用以下内容:
$questions = array(
'question1',
'question2',
//...
);
foreach($question as $id => $qText){
?>
<li>
<?php echo $qText ?>
<input type="text" name="answers[]" style="height: 40px;" size="50" dir="rtl">
</li>
<?php
}
在PHP方面,您可以在$_POST['answers']
获得答案,这将是一个数组。相信我,如果你想把数组中的这些值放到单独的变量中,那就是一个红旗:你的代码有问题。您不希望将一组答案作为自变量。