获取单选按钮值php

时间:2017-02-19 15:41:22

标签: php html

嗨,我似乎无法获得循环语句生成的单选按钮的值。即使有相应的单选按钮名称,$ _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中的radio0:\ xampp \ htdocs \ Bootstrap \ radio.php here is an example output 即使索引 radio0 存在于html的元素中

1 个答案:

答案 0 :(得分:0)

让我们一点一点地浏览代码

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 - 索引。

foreach ($ans as $choice) {echo "<input type='radio' name='radio$i' value = '$choice'>".$choice."<br>";
 } unset($choice);
              echo " </tr>";$i++;}

您没有在循环中定义任何$i变量,因此您无法使用$i变量