PHP / HTML запоминает выбранное значение после отправки - PullRequest
0 голосов
/ 04 марта 2019

Я знаю, что об этом задают много вопросов, но я много пробовал отсюда, и по какой-то причине они не сработали для меня.

Я заполняю список из mysqli.:

<select multiple="multiple" name="formCountries[]" size="5" id="keuzeproduct">
  <option value="keuze1" disabled selected="selected[]" multiple="multiple">Selecteer Product</option>
  <?php
       $sql = "SELECT DISTINCT Id, Product FROM metingen group by Product order by Product";
       $resultset = mysqli_query($conn, $sql) or die("database error:". mysqli_error($conn));
       while( $rows = mysqli_fetch_assoc($resultset) ) {
          ?>
          <option value="<?php echo $rows["Product"];?>" ><?php echo $rows["Product"]; ?></option>
          <?php } ?>
       </select>

Как я могу получить его, чтобы выбранный оставался выбранным после отправки?

Ответы [ 3 ]

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

Обернуть создание опции функцией:

function makeOption($value)
{
    echo "<option value=\"$value\"";
    if(isset($_POST['formCountries']) && in_array($value, $_POST['formCountries']))
        echo ' selected="selected"';
    echo ">$value</option>";
}

Использовать ее в цикле while:

while( $rows = mysqli_fetch_assoc($resultset) )
    makeOption($rows["Product"]);
0 голосов
/ 04 марта 2019

Simpy, вы можете сделать так для сценария опции:

<option value="<?php echo $rows["Product"];?>" <?=$rows['Product']=='//your val'?"selected":""?>><?php echo $rows["Product"]; ?></option>
                  <?php } ?>
0 голосов
/ 04 марта 2019

Получите выбранное значение и передайте его $selected_product и проверяйте каждую добавляемую вами опцию.Это должно решить ваше дело

   <select multiple="multiple" name="formCountries[]" size="5" id="keuzeproduct">
            <option value="keuze1" disabled selected="selected[]" multiple="multiple">Selecteer Product</option>
            <?php
                $selected_product = $your_value_here; //get the selected product from the database on load
                $is_selected  = "";
                $sql = "SELECT DISTINCT Id, Product FROM metingen group by Product order by Product";
                $resultset = mysqli_query($conn, $sql) or die("database error:". mysqli_error($conn));
                   while( $rows = mysqli_fetch_assoc($resultset) ) {
                      if($selected_product == $rows["Product"]){
                         $is_selected = "selected";
                      }
                    ?>
            <option value="<?php echo $rows["Product"];?>" <?php echo $is_selected; ?>><?php echo $rows["Product"]; ?></option>
                  <?php } ?>
        </select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...