这就是我得到的。
formulario.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title> Surveys </title>
</head>
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
<body>
<form action="main2.php" method="post">
Number of Surveys <input type="number" name="number">
<input type="submit" value="Send"/>
</form>
</body>
</html>
main2.php
<html>
<body>
<?
function Survey($number){
if($number > 0){
$a = 1;
while ($a <= $number){ ?>
<h2>Survey for person number <? echo $a;?></h2>
<form action="resultados.php" method="post">
Age <input type="number" name="age"/> <br><br>
Genre <br><br>
<input type="radio" name="male" value="6"/> Male <br>
<input type="radio" name="female" value="7"/> Female <br><br>
Marital Status <br><br>
<input type="radio" name="single" value="1"/> Single <br>
<input type="radio" name="married" value="2"/> Married <br>
<input type="radio" name="divorced" value="3"/> Divorced <br>
<input type="radio" name="free" value="4"/> Free Union <br>
<input type="radio" name="widowed" value="5"/> Widowed <br><br>
<?
$a = $a + 1;
}
}
}
echo Survey($_POST['number']);
?>
<input type="submit" value="Send"/>
</form>
</body>
</html>
resultados.php
<?
function Calculate($age){
$array_of_ages = array();
$array_of_ages[] = $age;
var_dump($array_of_ages);
}
echo Calcular($_POST['age']);
?>
我想创建一个小调查,所以在&#34; formulario.php&#34;文件我选择了一定数量的人继续&#34; main2.php&#34;并为每个人创建调查。例如,如果我选择3个人,那么&#34; main2.php&#34;代码应该做的是在同一页面中一个接一个地创建3个调查,只有&#34;提交&#34; BUTTOM。然后,当我填写所有调查并按下提交按钮时,我尝试使用&#34; resultados.php&#34;是从这些表格中收集所有数据并做一些事情,例如,计算结婚或离婚的人数,女性和男性的平均年龄等等......并在我按下&#34;发送& #34;
问题在于我被卡住了,而且我对如何做到这一点没有任何线索。我已经搜索了一些方法来捕获数据,如数组,循环,但它们都不起作用。如你所见,我创建了&#34; resultados.php&#34;在哪里我会假设显示已处理的信息但没有运气。
根据我在第一个.php文件中选择的号码,&#34; while&#34;在&#34; main2.php&#34;创建了建议的调查数量,但根据我想达到的目标,我不知道它是否是正确的方法。
我很感激你的帮助。我本周刚刚开始学习PHP,现在我很沮丧,因为我无法弄清楚如何通过自己来解决它。
PD:抱歉我的英语,而不是我的母语。答案 0 :(得分:1)
第一件重要的事情是,您的<form>
标记里面 while
循环。虽然您的表单只关闭一次,但它会多次打开,导致HTML无效。所以将它放在while
循环之前:
$a = 1; ?>
<form action="resultados.php" method="post">
<? while ($a <= $number){ ?>
<h2>Survey for person number <? echo $a;?></h2>
第二件事,因为你的 age 在你的表单中多次重复,你应该把它作为一个HTML输入数组,然后它才能保存多个值,所以改变你的年龄输入name
属性:
<!-- `[]` tells the HTML that all values of input with this name should
be preserved. If you do not have this, only your last value will be passed -->
<input type="number" name="age[]"/>
另外需要考虑的是你的单选按钮,单选按钮作为组工作,现在逻辑上有人填写表单不能同时检查男性和女性对吗?因此,您应该对它们进行分组,以便只填充一个,您可以通过更改name
属性再次执行此操作:
<!-- Again the `[]` is added because you have it repeating.-->
<input type="radio" name="gender[]" value="6"/> Male <br>
<input type="radio" name="gender[]" value="7"/> Female <br><br>
最后,由于 age 是一个数组,你需要遍历PHP端的值:
function Calculate($age){
foreach($age as $ages)
{
echo $ages;
}
}