Получить, если флажки отмечены с использованием имен - PullRequest
0 голосов
/ 06 января 2019

Я хочу создать форму теста «истина / ложь», заполненную вопросами из базы данных mysql, и сохранить ответы пользователя в зависимости от того, верны они или нет (если он установит флажки или нет), и вставить их в базу данных, но в том же столбце. как этот пример: id_question: true; id_question ложь; .... поэтому я решил, что когда пользователь загрузит форму, имя чакбокса будет заполнено идентификаторами вопросов и объединит каждый идентификатор с ответом каждого пользователя, но я не понял, как это сделать.

Это мой код:

<?php include('CodePHP/my_database.php');
     $questions = get_questions();



/*------------------------- add into database --------------------------------*/
    $ids_qst = $answers = [];
    if (isset($_POST['submit_answers'])){

    }
?>

<form action="" method="post" role="form" class="questionForm">

                <?php foreach($questions as $cle=>$question) {?>
                <div class="form-group">
                <div class="row">
                    <div class="col-sm-10"><p><?php echo $question['question'] ?></p>
                    </div>
                    <div class="col-sm-2">
                        <span class="outerDivFull" >
                            <span class="switchToggle">
                                <input type="checkbox" name="<?php echo $question['id_qst']?>" id="<?php echo $question['id_qst']?>">
                                <label for="<?php echo $question['id_qst']?>">Vrai/Faux</label>

                                <?php 
                                        /* Ajouter id question dans la liste des ids*/
                                    array_push($ids_qst, $question['id_qst']);?>
                            </span>
                        </span>
                    </div>
                    </div>
                </div>
                <?php }?>

        <div class="text-center">
            <button name="submit_answers" type="submit" class="btn btn-primary btn-lg">Valider</button>
            <button type="reset" class="btn btn-primary btn-lg">Annuler</button>
        </div>
            </form>

Ответы [ 2 ]

0 голосов
/ 06 января 2019

Потратив часы на размышления и тестирование, я нашел свой ответ один Вместо того, чтобы использовать флажки, я должен был использовать переключатели, потому что это правда / ложь викторина

Это мой код для тех, кому понадобится помощь:

<?php
    $user_answers = "";
        if (isset($_POST['submit_answers'])){
               foreach ($_POST as $key => $value){
                   if($key!='submit_answers'){
                       $user_answers=$user_answers.$key.":".$value.";";
                   }
           }
        }
        echo $user_answers;
    ?>

   <span class="radio-group btn-group" >
       <input type="radio" class="checkmark" name="<?php echo $question['id_qst']?>" value="True">
       <label>True</label>
       <input type="radio" class="checkmark" name="<?php echo $question['id_qst']?>" value="False">
       <label>False</label>
    </span>
0 голосов
/ 06 января 2019

До тех пор, пока вы отправляете имя для ввода, когда вы отправляете запрос на публикацию, ваша переменная $ _POST должна отображать отмеченные значения как 1. Это работает для флажков и переключаемых типов ввода. В вашем бэкэнд-скрипте php вы можете запустить свою логику, основываясь на этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...