Окно выбора, отображающее пустую строку с использованием набора сеансов - PullRequest
1 голос
/ 29 марта 2019
          <select name="score-1" class="score-1">
            <?php
              if(isset($_SESSION['s_score1'])){ //echoes currently set team
              echo $_SESSION['s_score1'];
              }else {
                echo "<option>0</option>
                      <option>1</option>
                      <option>2</option>
                      <option>3</option>
                      <option>4</option>";
              }
            ?>
          </select>


<?php //SETTING SESSION VARIABLES FOR ROUND 1 TEAMS AND SCORE

session_start();

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

    include_once 'dbcon.php';

    $_SESSION['t_team1'] = $_POST['team-1'];
    $_SESSION['t_team2'] = $_POST['team-2'];
    $_SESSION['s_score1'] = $_POST['score-1'];
    $_SESSION['s_score2'] = $_POST['score-2'];
    header("Location: ../tables.php?tables=winner");
}
?>

По сути, он заполняет поле выбора одним пробелом вместо текущей переменной сеанса. Кажется, я не могу найти проблему

1 Ответ

0 голосов
/ 29 марта 2019

Вы печатаете параметры условно. Вы всегда должны печатать опции и просто отмечать правильный как «выбранный».

<select name="score-1" class="score-1">
            <?php
                 $val = isset($_SESSION['s_score1']) ? $_SESSION['s_score1'] : false;
                 foreach(range(0,4) as $n) {
                   $selected = $n === $val ? 'selected' : ''; 
                   echo '<option ' .$selected . '>'.$n.'</option>';
                 }
            ?>
          </select>
...