嗨,我似乎无法获得loop语句生成的单选按钮的值。$ _POST方法不起作用,即使有相应的单选按钮名称也是如此。
<?php
$servername = "127.0.0.1";
$username = "root";
$password = "";
$dbname = "test";
$i = null;
$conn = new mysqli($servername, $username, $password, $dbname);
for ($t=0;$t<4;$t++){}
$sql = "SELECT * FROM questions LIMIT $t";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$i = 0;
echo " <form action='radio.php' method='post'><table>";
echo "<tr>
<th>Questions</th>
<th>Answers</th> </tr> <tr>" ;
while($row = $result->fetch_assoc()) {
$ans=array($row['1'],$row['2'],$row['3']);
shuffle($ans);
echo $row['question']."<br>";
foreach ($ans as $choice) {
echo "<input type='radio' name='radio$i' value = '$choice'>".$choice."<br>";
} unset($choice);
echo " </tr>";$i++;
}
echo "</table> <input type = 'submit' value = 'finished'></form><br>";
echo "";
} else {
echo "0 results";
}
$conn->close();
?>
它总是导致
注意:未定义的索引:C:\ xampp \ htdocs \ Bootstrap \ radio.php中的radio0这里是示例输出,即使html元素中存在索引radio0。
让我们一点一点地看一下代码
for ($t=0;$t<4;$t++){}
这是一个空的for循环。方括号{
和}
应该包括循环的动作。由于它们为空,因此在此循环中没有任何反应
$sql = "SELECT * FROM questions LIMIT $t";
您不能在此处使用$ t变量,因为它超出了范围。即使您可以,我也怀疑这是您真正想要的,因为这LIMIT
仅限制了您可以获得的响应数量。
$result = $conn->query($sql);
您尚未定义连接对象(假设您已提供所有代码)。
$i = 0; echo " <form action='radio.php' method='post'><table>";
在同一行上定义这些东西确实是很糟糕的做法(尽管有可能)。
<th>Answers</th> </tr> <tr>" ;while($row = $result->fetch_assoc()) {
再次,可怕的练习-这很难读。
$ans=array($row['1'],$row['2'],$row['3']);
您应该最有可能使用整数索引而不是字符串。此外,请记住,数组是0
-indexed的。
foreach ($ans as $choice) {echo "<input type='radio' name='radio$i' value = '$choice'>".$choice."<br>";
} unset($choice);
echo " </tr>";$i++;}
您$i
尚未在循环中定义任何变量,因此无法使用该$i
变量
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句