我正在为$ i的不同数值的用户循环一个问题。他们将以html形式输入一个也是循环的数量。在他们点击提交时,我希望有一个数组(使用[0]以后的密钥范围)存储他们对问题的每个特定变体的响应。但是,根据我编写的代码,我只设法用key [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);
?>
答案 0 :(得分:1)
您的每个输入都以新的形式出现,而提交按钮也以自己的形式出现。我为你修好了:
<?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);
?>
让我知道它是否有效。
答案 1 :(得分:1)
每个问题都不应该有新的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);
?>
答案 2 :(得分:0)
<?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);
?>
答案 3 :(得分:0)
您可以使用array_push($arrayName, $elementToBePushed);