форма флажка в сеансе не работает должным образом - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь написать код для онлайн-формы:

На странице 1 есть только некоторые демографические вопросы. Именно на этой первой странице я начинаю сеанс. Когда они отправляют свои ответы, они перенаправляются на страницу 2, где я размещаю некоторые заявления, на которых они могут выбрать уровень своего согласия. - Если они захотят вернуться, их ответы на предыдущей странице запоминаются благодаря сеансу. - В конечном итоге их ответы будут перенесены в базу данных (еще не написал).

Проблема: 1) Я пытался умножить количество вопросов на 3 вопроса на странице 2, но когда я перехожу на страницу 3и вернуться на страницу 2, ответы не запоминаются?

2) Если я проверяю только некоторые из вопросов (не все), я получаю «Уведомление: неопределенный индекс:» со строкой без ответа вопросна. Можно ли это как-то решить?

Это код со страницы 2:

<form action="page3.php" method="post">
<?php
    $options = array(
        'Good' => 'Good',
        'Neutral' => 'Neutral',
        'Bad' => 'Bad',
);

checkbox( 'Question_1', 'Question_1', 'How good is your health?', $options );
checkbox( 'Question_2', 'Question_2', 'How good is your math?', $options );
checkbox( 'Question_3', 'Question_3', 'How good is your knowledge of astrofysics?', $options );

?>

<?php submit('Go To Step 3 &raquo;'); ?>
</form>

Это код со страницы 3 (где информация со страницы 2хранится в переменных SESSION):

<?php
include_once('header.php');

// Store data from page 1 in session
if ( ! empty( $_POST ) ) {
  $_SESSION['Question_1'] = $_POST['Question_1'];
  $_SESSION['Question_2'] = $_POST['Question_2'];
  $_SESSION['Question_3'] = $_POST['Question_3'];
}

?>

И это код используемой функции (из functions.php):

function checkbox( $name, $id, $label, $options = array() ) {?>
  <div class="form-group">
    <p><?php echo $label; ?></p>
    <?php foreach ( $options as $value => $title ) : ?>
      <label class="checkbox-inline" for="<?php echo $id; ?>">
        <input type="checkbox" required name="<?php echo $name; ?>[]" value="<?php echo $value; ?>" <?php isset($_SESSION['Question_1'],$_SESSION['Question_2'],$_SESSION['Question_3']) ? checked="checked":; ?>>
        <span class="checkbox-title"><?php echo $title; ?></span>
      </label>
    <?php endforeach; ?>
  </div>

Что я делаю не так?

1 Ответ

0 голосов
/ 18 октября 2019

Проблема с этой строкой:

    <input type="checkbox" required name="<?php echo $name; ?>[]" value="<?php echo $value; ?>" <?php isset($_SESSION['Question_1'],$_SESSION['Question_2'],$_SESSION['Question_3']) ? checked="checked":; ?>>

Вероятно, это должно быть что-то вроде:

    <input type="checkbox" required name="<?php echo $name; ?>[]" value="<?php echo $value; ?>" <?php isset($_SESSION[$id]) ? checked="checked":; ?>>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...