Как выбрать опцию и опубликовать в сессии - PullRequest
0 голосов
/ 08 мая 2018

Мне нужно отобразить что-то, основываясь на вводе опции выбора. Опция записывается в сеансе, но всегда дает последнее значение выбора.
Надеюсь, кто-нибудь может помочь мне с этим.
Первая страница;

<form class="form-horizontal" action="postchange.php" method="POST">
        <fieldset>
        <div class="form-group">
            <label class="col-md-4 control-label" for="Naam">Naam</label>  
                <div class="col-md-4">
                    <select id="gebruiker" name="gebruiker" placheholder="kies een gebruiker" class="form-control" required>
                        <?php

                                $conn = dbconnect();
                        // selecteer alle users waar stats == 0 en sorteert deze oplopend op ID
                                $query = "SELECT * FROM users WHERE Status LIKE 0 ORDER BY id DESC"; 
                                $result = mysqli_query($conn, $query);
                            while($row1 = mysqli_fetch_array($result)):;

                        ?>
                    <option>
                        <?php
                        // Geeft het ID, voornaam + achternaam weer
                        echo "$row1[0] $row1[2] $row1[3]";
                        $test=$row1[0];
                        endwhile;
                        ?>
                    </option>
                    </select>

              </div>

        </div>
                    <div class="form-group">
              <label class="col-md-4 control-label" for="singlebutton"></label>
                  <div class="col-md-4">
                      <button id="volgende" name="volgende" class="btn btn-success">volgende</button>
                  </div>
        </div>
        </fieldset>
    </form>       
                            <?php 
                        $_SESSION['gebruiker']=$test;
                    ?> 

2-я страница (postchange.php):
Здесь сеанс отображает некоторое значение, но не выбранное. Как упоминалось ранее, он всегда дает последнее значение опции выбора.

<form class="form-horizontal" action="#" method="post">
            <fieldset>              
<div class="form-group">
              <label class="col-md-4 control-label" for="soort">Configuratie item</label>
              <div class="col-md-4">
                        <select id="gebruiker" name="gebruiker" placheholder="kies een gebruiker" class="form-control" required>
                            <?php

                                    $conn = dbconnect();
                                    $query = "SELECT * FROM config WHERE gebruiker='".$_SESSION['gebruiker']."';"; 
                                    $result = mysqli_query($conn, $query);
                                while($row1 = mysqli_fetch_array($result)):;
                            ?>
                        <option>
                            <?php
                            echo "$row1[0] $row1[2] $row1[3]";?>
                        </option>
                            <?php 
                                endwhile;
                            ?>
                        </select>
              </div>
            </div>

            </fieldset>
        </form>
<?php 
                                    var_dump($gebruiker, $aanvraag, $_SESSION['userid']);

        ?>

1 Ответ

0 голосов
/ 08 мая 2018

Просто замените строку

$query = "SELECT * FROM config WHERE gebruiker='".$_SESSION['gebruiker']."';";

с

$query = "SELECT * FROM config WHERE gebruiker='".$_POST['gebruiker']."'";

Это должно работать, так как отправляет выбранный элемент из опций.

Просто маленький образец:

<form action="" method="POST">
    <select name="bac">
        <option name="1">1</option>
        <option name="2">2</option>
        <option name="3">3</option>
        <option name="4">4</option>
        <option name="5">5</option>
        <option name="6">6</option>
    </select>
    <input type="submit" />
</form>

<?php
    if(isset($_POST['bac']))
        echo $_POST['bac'];
?>

Кроме того, удалите приведенные ниже строки из вашего первого файла,

<?php 
   $_SESSION['gebruiker']=$test;
?> 

Обновлено

заменить:

while($row1 = mysqli_fetch_array($result)):;

с:

$row1 = mysqli_fetch_array($result);

и удалить,

<?php 
    endwhile;
?>

При изменении кода выше одна строка будет выбрана один раз.

...