【问题标题】:different values for radio button if selected or not如果选中或未选中,单选按钮的不同值
【发布时间】:2017-05-29 22:09:44
【问题描述】:

我正在开发一个在线考试网站。

当我想用选项定义一个问题时,我应该选择正确的选项。所以每个选项前面都有一个单选按钮,如果我选择它,它将是正确的选择。

我希望当我选择其中一个单选按钮时,它的值为“1”,如果不是,则值为“0”,因此我可以使用 foreach 将它们保存在数据库中。那是我的问题。

由于选择的数量不明确(从2到更多)并且可以动态添加,所以我无法为它们设置具体的值。

我使用了 isset 和 foreach,但我想我没有以正确的方式使用它们。 我认为它可以通过 javascript 或 jquery 来完成,但我不知道如何。

choice 1:
<textarea class="form-control" name="choice[]" placeholder="choice text"></textarea>
<label><input type="radio" name="correct[]">Correct</label>

choice 2:
<textarea class="form-control" name="choice[]" placeholder="choice text"></textarea>
<label><input type="radio" name="correct[]">Correct</label>

Other Choices ...



<?php
foreach ( $_POST['choice'] as $key => $value ){
if (!empty($value)){
    foreach ($_POST['correct'] as $value2){ 
    if (isset($value2)) $choice_answer = '1'; else $choice_answer = '0';}

mysqli_query($server,"INSERT INTO question_choices (question_id,exam_id,choice,answer) VALUES ('$question_id','$current_exam_id','$value','$choice_answer')");}}
?>

【问题讨论】:

    标签: javascript php jquery radio-button


    【解决方案1】:

    所以您可以将您的选择存储在一个数组中,这很好。但是,您也将正确的指标存储在数组中。你不需要它在一个数组中,因为只有一个正确的选择。

    因此,将您的 correct[] 更改为 correct 并为每个选择逐步设置值。

    例如:

    choice 1:
    <textarea class="form-control" name="choice[]" placeholder="choice text"></textarea>
    <label><input type="radio" name="correct" value=0>Correct</label>
    
    choice 2:
    <textarea class="form-control" name="choice[]" placeholder="choice text"></textarea>
    <label><input type="radio" name="correct" value=1>Correct</label>
    
    choice 3:
    <textarea class="form-control" name="choice[]" placeholder="choice text"></textarea>
    <label><input type="radio" name="correct" value=2>Correct</label>
    

    由于只发布选定的单选按钮,$_POST['correct'] 将在$_POST['choice'] 数组中包含正确答案的索引。

    然后你可以在发送到数据库之前做这样的事情来相应地设置你的值:

    foreach ($_POST['choice'] as $i => $choice) {
        if (!empty($choice)) {
    
            if($_POST['correct'] == $i){
                $choice_answer = 1;
            } else {
                $choice_answer = 0;
            }
    
            mysqli_query($server, "INSERT INTO question_choices (question_id,exam_id,choice,answer) VALUES ('$question_id','$current_exam_id','$value','$choice_answer')");
        }
    }
    

    【讨论】:

    • 太棒了!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 2017-07-24
    • 2019-10-04
    • 1970-01-01
    相关资源
    最近更新 更多