我用$I的不同数值为用户循环一个问题。他们会在html表单中输入一个数量,这个数量也会循环。当他们点击提交时,我希望有一个数组(从[0]开始的键排列形式)来存储他们对问题的每个特定变体的响应。然而,在我编写的代码中,我只设法用键[0]存储他们的最后一个输入,就好像它是数组的第一个元素一样。当我调用print_r时,以前的所有答案似乎都丢失了。请,如果有人能指出为什么会发生这种情况,或者我如何解决它,我将不胜感激。
<?php
for ($i=2; $i<=10; $i++)
{
print "question $i";
echo"<form action='"mysqlranked.php'" method='"post'">
<input type='"text'" name='"pools[]'" value='"0'" maxlength='"2'" size='"2'">
</form>
<br>";
}
print "
<form>
<input type='"submit'" name='"formSubmit'" value='"Submit'">
</form>";
if (isset($_POST["formSubmit"]))
{
$var = $_POST["pools"];
}
print_r($var);
?>
您的每个输入都在一个新表单中,提交按钮也在自己的表单中。我帮你搞定了:
<?php
echo "<form action='"mysqlranked.php'" method='"post'">";
for ($i=2; $i<=10; $i++)
{
print "question $i";
echo"
<input type='"text'" name='"pools[]'" value='"0'" maxlength='"2'" size='"2'">
<br>";
}
print "
<input type='"submit'" name='"formSubmit'" value='"Submit'">
";
echo "</form>";
if (isset($_POST["formSubmit"]))
{
$var = $_POST["pools"];
}
print_r($var);
?>
如果有效,请告诉我。
您不应该为每个问题都有一个新的form
标记。
试试下面的代码:
<form action="mysqlranked.php" method="post">
<?php
for ($i = 2; $i <= 10; $i++)
{
print "question $i";
?>
<input type="text" name="pools[]" value="0" maxlength="2" size="2">
<?php
}
?>
<input type="submit" name="formSubmit" value="Submit">
</form>
<?php
if (isset($_POST["formSubmit"]))
{
$var = $_POST["pools"];
}
print_r($var);
?>
<?php
for ($i=2; $i<=10; $i++)
{
print "question $i";
echo"<form action='"mysqlranked.php'" method='"post'">
<input type='"text'" name='"pools[]'" value='"0'" maxlength='"2'" size='"2'">
<br>";
}
print "
<input type='"submit'" name='"formSubmit'" value='"Submit'">
</form>";
if (isset($_POST["formSubmit"]))
{
for($counter=0;$counter<count($_POST["pools"]);$counter++)
{
$var = $_POST['pools'][$counter]
}
}
print_r($var);
?>
您可以使用array_push($arrayName, $elementToBePushed);