我无法检查多个单选按钮

时间:2016-06-24 12:49:41

标签: javascript php jquery

其问题和四个选项并检查任何一个。 问题当选中下一个问题的按钮时,则取消选中上一个检查。

代码如下:

    <form method="post" id="submitme">
    <table class="ques_list" border=1 style="width:100%">
    <?php 
        $result=mysql_query("SELECT * FROM questions ORDER BY RAND() LIMIT 20");
        while ($row = mysql_fetch_array($result)) { ?>
            <tr>
                <td colspan="2"><?php echo $row['ques_title']."<br />"; ?></td>
            </tr>
            <tr>
                <td><input type="radio" name="opt_value" value="1" /><?php echo $row['ques_opt_1']."<br />"; ?></td>
                <td><input type="radio" name="opt_value" value="2" /><?php echo $row['ques_opt_2']."<br />"; ?></td>
            </tr>
            <tr>
                <td><input type="radio" name="opt_value" value="3" /><?php echo $row['ques_opt_3']."<br />"; ?></td>
                <td><input type="radio" name="opt_value" value="4" /><?php echo $row['ques_opt_4']."<br />"; ?></td>
            </tr>
        <?php } ?>
        <tr><td colspan="2"><button type="submit" name="btn-submit" class="btn-submit">Submit</button></td></tr>
    </table>
</form> 

我怎样才能获得他的价值? 建议我。 感谢。

6 个答案:

答案 0 :(得分:1)

您可以为单选按钮的名称添加索引。

<?php 
require("phpsqlajax_dbinfo.php");

$conn = mysqli_connect('localhost', $username, $password, $database);

if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
} 

$data = isset($_POST['month']);
$monthstring = mysqli_real_escape_string($conn, $data);

$sql = "INSERT INTO `databasea`.`tablea` (`MONTH`, `TEST`) VALUES ('". $monthstring ."', 'xxx');";

mysqli_query($conn, $sql);
mysqli_close($conn);
?>

编辑:

然后你可以按如下方式阅读你的答案:
<form method="post" id="submitme"> <table class="ques_list" border=1 style="width:100%"> <?php $result=mysql_query("SELECT * FROM questions ORDER BY RAND() LIMIT 20"); while ($row = mysql_fetch_array($result)) { ?> <tr> <td colspan="2"><?php echo $row['ques_title']."<br />"; ?></td> </tr> <tr> <td><input type="radio" name="opt_value_<?php echo $row['ques_id']; ?>" value="1" /><?php echo $row['ques_opt_1']."<br />"; ?></td> <td><input type="radio" name="opt_value_<?php echo $row['ques_id']; ?>" value="2" /><?php echo $row['ques_opt_2']."<br />"; ?></td> </tr> <tr> <td><input type="radio" name="opt_value_<?php echo $row['ques_id']; ?>" value="3" /><?php echo $row['ques_opt_3']."<br />"; ?></td> <td><input type="radio" name="opt_value_<?php echo $row['ques_id']; ?>" value="4" /><?php echo $row['ques_opt_4']."<br />"; ?></td> </tr> <?php } ?> <tr><td colspan="2"><button type="submit" name="btn-submit" class="btn-submit">Submit</button></td></tr> </table> </form> 必须对每个问题都是唯一的,答案应该是唯一发布的值)

$row['ques_id']

答案 1 :(得分:1)

具有相同name的单选按钮是互斥的,这意味着如果您选择一个,则将取消选择具有相同名称的所有其他按钮。 因此,您的问题的解决方案是您为答案提供不同名称的每组单选按钮。您可以在while循环中使用计数器:

 <form method="post" id="submitme">
    <table class="ques_list" border=1 style="width:100%">
    <?php 
        $result=mysql_query("SELECT * FROM questions ORDER BY RAND() LIMIT 20");
        $i = 0;
        while ($row = mysql_fetch_array($result)) { 
          $i++;
        ?>
            <tr>
                <td colspan="2"><?php echo $row['ques_title']."<br />"; ?></td>
            </tr>
            <tr>
                <td><input type="radio" name="opt_value_<?php echo $i ?>" value="1" /><?php echo $row['ques_opt_1']."<br />"; ?></td>
                <td><input type="radio" name="opt_value_<?php echo $i ?>" value="2" /><?php echo $row['ques_opt_2']."<br />"; ?></td>
            </tr>
            <tr>
                <td><input type="radio" name="opt_value_<?php echo $i ?>" value="3" /><?php echo $row['ques_opt_3']."<br />"; ?></td>
                <td><input type="radio" name="opt_value_<?php echo $i ?>" value="4" /><?php echo $row['ques_opt_4']."<br />"; ?></td>
            </tr>
        <?php } ?>
        <tr><td colspan="2"><button type="submit" name="btn-submit" class="btn-submit">Submit</button></td></tr>
    </table>
</form> 

答案 2 :(得分:1)

如果选中一个单选按钮,则所有其他单选按钮都将取消选中。 通过为组设置一个唯一名称来对单选按钮进行分组 第一组:

<input name="test">
<input name="test">

第二组

<input name="test2">
<input name="test2">

答案 3 :(得分:1)

您必须为每个问题指定唯一的名称。

<form method="post" id="submitme">
    <table class="ques_list" border=1 style="width:100%">
    <?php $result=mysql_query("SELECT * FROM questions ORDER BY RAND() LIMIT 20");
        $count = 0;
        while ($row = mysql_fetch_array($result)) { ?>
            <tr>
                <td colspan="2"><?php echo $row['ques_title']."<br />"; ?></td>
            </tr>
            <tr>
                <td><input type="radio" name="opt_value[ <?php echo $count; ?> ]" value="1" /><?php echo $row['ques_opt_1']."<br />"; ?></td>
                <td><input type="radio" name="opt_value[ <?php echo $count; ?>]" value="2" /><?php echo $row['ques_opt_2']."<br />"; ?></td>
            </tr>
            <tr>
                <td><input type="radio" name="opt_value[ <?php echo $count; ?>]" value="3" /><?php echo $row['ques_opt_3']."<br />"; ?></td>
                <td><input type="radio" name="opt_value[ <?php echo $count; ?>]" value="4" /><?php echo $row['ques_opt_4']."<br />"; ?></td>
            </tr>
        <?php $count++; } ?>
        <tr><td colspan="2"><button type="submit" name="btn-submit" class="btn-submit">Submit</button></td></tr>
    </table>
</form> 

结果:

https://jsfiddle.net/yvolkan/o5z6q29o/1/

答案 4 :(得分:0)

其问题与单选按钮名称有关。您必须为每个问题分配一个唯一的单选按钮名称。 在这里,我有一个变量为每个问题单选按钮组分配一个唯一的名称。

试试这个 - &gt;&gt;

<form method="post" id="submitme">
    <table class="ques_list" border=1 style="width:100%">
    <?php 
        $result=mysql_query("SELECT * FROM questions ORDER BY RAND() LIMIT 20");
        $i=1; 
        while ($row = mysql_fetch_array($result)) { ?>
            <tr>
                <td colspan="2"><?php echo $row['ques_title']."<br />"; ?></td>
            </tr>
            <tr>
                <td><input type="radio" name="opt_value<?php echo $i; ?>" value="1" /><?php echo $row['ques_opt_1']."<br />"; ?></td>
                <td><input type="radio" name="opt_value<?php echo $i; ?>" value="2" /><?php echo $row['ques_opt_2']."<br />"; ?></td>
            </tr>
            <tr>
                <td><input type="radio" name="opt_value<?php echo $i; ?>" value="3" /><?php echo $row['ques_opt_3']."<br />"; ?></td>
                <td><input type="radio" name="opt_value<?php echo $i; ?>" value="4" /><?php echo $row['ques_opt_4']."<br />"; ?></td>
            </tr>
        <?php $i++; } ?>
        <tr><td colspan="2"><button type="submit" name="btn-submit" class="btn-submit">Submit</button></td></tr>
    </table>
</form> 

答案 5 :(得分:0)

将他们命名为不同的问题。这样你每个问题只能选择一个,但它不会从其他问题中取消选中答案。当它们都具有相同的名称时,它将取消选中任何以前的按钮。

    <form method="post" id="submitme">
    <table class="ques_list" border=1 style="width:100%">
    <?php 
        $result=mysql_query("SELECT * FROM questions ORDER BY RAND() LIMIT 20");
        while ($row = mysql_fetch_array($result)) { ?>
            <tr>
                <td colspan="2"><?php echo $row['ques_title']."<br />"; ?></td>
            </tr>
            <tr>
                <td><input type="radio" name="opt_value" value="1" /><?php echo
$row['ques_opt_1']."<br />"; ?></td>
                <td><input type="radio" name="opt_value" value="2" /><?php echo $row['ques_opt_2']."<br />"; ?></td>
            </tr>
            <tr>
                <td><input type="radio" name="opt_value2" value="3" /><?php echo  $row['ques_opt_3']."<br />"; ?></td>
                <td><input type="radio" name="opt_value2" value="4" /><?php echo $row['ques_opt_4']."<br />"; ?></td>
            </tr>
        <?php } ?>
        <tr><td colspan="2"><button type="submit" name="btn-submit" class="btn-  submit">Submit</button></td></tr>
    </table>
</form>