Форма PHP не отправляет значение $ _POST

Вопрос.php

    <?php
include 'Pre-function.php'

?>
<!DOCTYPE html>
<html>
<head>
<link rel = "stylesheet" href = "CSS/Start.css">
</head>
<body>

<div class = "nav">
    <a href = "Homepage.php">Home</a>
    <a href = "#news">News</a>
    <a href = "#contact">Contact</a>
</div> 

<div class = "question"> 
    <div class = "A4">
        <form action = "Answer.php" method = "POST">
        <?php getQuestion($conn);  ?>
        <input type = "submit" name = "Submit">

        </form>
    </div>
</div>
</body>
</html>

Pre-function.php

<?php
include 'conn.php';

function getQuestion($conn) {

    $query = "SELECT * FROM question ";
    $result = mysqli_query($conn, $query);

    if ($result){

        while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
           $question_id = $row['question_id'];
           $question_body = $row['question_body'];
           $option_a = $row['option_a'];
           $option_b = $row['option_b'];

            echo '

                <h2 class = "qtitle">'.$question_body.'</h2>
                <label 
                for='.$question_body.'>Yes</label>
                <input type = "checkbox" name = "'.$option_a.'" value = "'.$option_a.'">
                <input type = "hidden" name = "'.$question_id.'" value = "'.$question_id.'">
                <hr>

            ';  
            }

    }

}

?>

Answer.php

<?php
include 'conn.php';
if (isset($_POST['Submit'])){

  if (isset($_POST['answer'])){

      print_r($_POST);
}

}


?>

Флажок значения и скрытый ввод не отправляли никакого значения на странице Answer.php. Он не отправлял никаких ошибок или предупреждений. Значение 'Option_a' == 'Да' и 'question_id' == S1, S2, S3 и т. д.. У каждого 'question_id' есть свой вопрос, и пользователь должен отметить да. Поэтому я хочу отправить эти значения на другую страницу. Я надеюсь, что любой из вас сможет мне помочь.

снятые флажки не отправляются!

Dormilich 12.04.2018 17:44

Вы должны определить имя флажка и скрытого поля как Массив .. Потому что у него есть несколько флажков и скрытых полей.

Siva 12.04.2018 17:47

Так что я должен сделать question_id [] вот так ...

FikZul 12.04.2018 18:09

Пожалуйста, покажите фактический HTML-код для формы, которую он создает. Здесь ни у кого нет доступной вашей базы данных, поэтому мы не можем правильно воспроизвести точный вывод вашего PHP-кода с самого начала.

CBroe 13.04.2018 11:48
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий


Я могу понять, что вы на самом деле хотите сделать, но не уверен, чего вы на самом деле пытаетесь достичь, сохраняя параметры как name и question_id как скрытый ввод.

Как я подхожу к этому, я сохраняю question_id как имя для параметров, и я бы предложил использовать радиальные кнопки, если это вопрос да или нет. В любом случае, чтобы решить вашу проблему, внесите следующие изменения в формат вашего вопроса в pre-function.php

<?php
include 'conn.php';

function getQuestion($conn) {

    $query = "SELECT * FROM question ";
    $result = mysqli_query($conn, $query);

    if ($result){

        while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
           $question_id = $row['question_id'];
           $question_body = $row['question_body'];
           $option_a = $row['option_a'];
           $option_b = $row['option_b'];

            echo '

                <h2 class = "qtitle">'.$question_body.'</h2>
                <label>'.$question_body.'</label>
                <input type = "checkbox" name = "'.$question_id.'" value = "'.$option_a.'">
                <input type = "checkbox" name = "'.$question_id.'" value = "'.$option_b.'">
                <hr>

            ';  
            }
    }
}

?>

Теперь здесь каждый вопрос, имеющий два варианта, будет иметь то же имя, что и вопрос, и значения, что и параметры. Теперь ваш Answer.php должен выглядеть как

<?php
include 'conn.php';
if (isset($_POST['Submit'])){    // if submit is true

 // if you want to print all answers then loop through the question id
 // $_POST[$question_id] gives you the value of the answer 
 //i.e the option the user has chosen for that particular question

$query = "SELECT * FROM question ";
$result = mysqli_query($conn, $query);

if ($result){

    while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
       $question_id = $row['question_id'];
       echo $_POST[$question_id];
    }
}
}
?>

Надеюсь, это имеет смысл и поможет. :)

проверьте здесь для получения дополнительной информации о флажках.

Другие вопросы по теме