【问题标题】:getting Radio button value php获取单选按钮值php
【发布时间】:2026-01-30 11:55:01
【问题描述】:

您好,我似乎无法获得循环语句生成的单选按钮的值。即使有相应的单选按钮名称,$_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 here is an example output987654321@中的 radio0@ 即使索引 radio0 存在于html的元素中。

【问题讨论】:

  • 看看你的html源代码,你会明白发生了什么
  • 顺便说一句,您已经发布了非常相似的内容*.com/q/42178389/1415724 - 如果相同,您应该删除那个较旧的问题。
  • 你知道你在第一个循环范围内没有做任何事情吗? for ($t=0;$t&lt;4;$t++){} 这个循环的主体是空的,尽管如果你正确地格式化你的代码,你会发现还有更多的范围问题

标签: php html


【解决方案1】:

让我们一点一点的看代码

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 变量

【讨论】:

  • 嗨,我知道这有点乱,但不知何故它可以工作。并且还为整个语法编辑了我的帖子。我剩下的问题是循环创建的单选按钮无法识别 $_POST。
最近更新 更多