Сохранять стоимость select desplegable в php

У меня есть проблема с select (изогнутый тип или dropdown), там я загружаю с php серию категорий, тема - что из-за ошибки вооруженный первоначальным основанием, и в которое категории не могут быть больше 20/30, они всегда называют из-за Вашего поля категорию (текст) и не из-за Вашей идентификации. В этом случае, я загружаю select так в value как в тексте, который нужно показывать с string или именем категории, так как консультация, чтобы показывать статьи о категории, я делаю ее из-за like.

Я выбираю категорию, делаю консультацию, перезагружена страница с новой консультацией, и я теряю расположение select, вернись в первый элемент, хотя я нуждаюсь останьтесь точно в категории, которая была выбрана последний. Какая-то идея как делать это? Я показываю им часть кода:

                    <form id="guarda_combo" method="POST" action="categoria.php">
                        <span> Seleccione una Categoría </span>
                        <select id="combo_categorias" name="cat" onchange="location.href='categoria.php?num=' + this.value +'1';">
                <?php
                    if ($result = mysqli_query($con, $consulta)) {
                        /* obtener array asociativo */
                        while ($filas = mysqli_fetch_assoc($result)) {
                            $idCategoria=$filas['idCategoria'];
                            $descCategoria=$filas['descCategoria'];                                
                            echo "<option value='".$descCategoria."'>" . $descCategoria."</option>";
                         }      
                   ?>        
                        </select> 
                    </form>

sanzante, из-за вопроса рисунка, может быть, не очень хороший, выбрав категорию select, я иду categoria.php, что, где я беру посланную стоимость и обрабатываю вид. Там сам я выровнял категорию с переменной session вызов "cat_elegida". Я приспособил решение следующего:

                        while ($filas = mysqli_fetch_assoc($result)) {
                            $idCategoria=$filas['idCategoria'];
                            $descCategoria=$filas['descCategoria'];
                            $currentcategoria=$_SESSION["cat_elegida"];
//                            echo "<option value='".$descCategoria."'>" . $descCategoria."</option>";
                            if ($descCategoria == $currentCategoria)
                                {
                                $selected = 'selected="selected"';
                                echo "<option $selected value='".$descCategoria."'>" . $descCategoria."</option>";
                                }else{
                            echo "<option value='".$descCategoria."'>" . $descCategoria."</option>";
                            }
                            }

из-за какой-то ошибки или разума оно я не функционирует,

2
задан 21.10.2016, 19:31
2 ответа

Ты должен показывать в произведенном HTML, каков отборный выбор. Для этого ты должен использовать свойство selected. Например:

<select name="selector">
  <option>A</option>
  <option selected="selected">B</option>
  <option>C</option>
  <option>D</option>
  <option>E</option>
</select>

В твоем случае:

<?php
  if ($result = mysqli_query($con, $consulta)) {
      /* obtener array asociativo */
      while ($filas = mysqli_fetch_assoc($result)) {
          $idCategoria=$filas['idCategoria'];
          $descCategoria=$filas['descCategoria'];
          $selected = "";                                
          if ($descCategoria === $currentCategoria) {
            $selected = 'selected="selected"';                                
          }
          echo "<option $selected value='".$descCategoria."'>" . $descCategoria."</option>";
      }      
?> 

В цикле если $descCategoria он равен в $currentCategoria добавляется один selected="selected" в option настоящий.

Очевидно ты будешь должен закреплять в $currentCategoria категория, которая была выбрана в формуляре. Для этого у тебя будет, что консульский array с данными form, обычно $_POST.

2
ответ дан 24.11.2019, 13:01

Ты можешь посылать добавочную переменную и проверять, существует ли он... отметки как selected та, которая равна, напечатав select.

<form id="guarda_combo" method="POST" action="categoria.
    <span> Seleccione una Categoría </span>
    <select id="combo_categorias" name="cat" onchange="location.href='categoria.php?num=' + this.value +'1'&actual='+this.value+';">
    <?php
          if ($result = mysqli_query($con, $consulta)) {
          /* obtener array asociativo */
              while ($filas = mysqli_fetch_assoc($result)) {
                  $idCategoria=$filas['idCategoria'];
                  $descCategoria=$filas['descCategoria'];                                
                  echo "<option value='".$descCategoria."' ".(isset($_GET['actual']) ? 'selected' : "").">" . $descCategoria.</option>";
              }
          }      
    ?>        
    </select> 
</form>

Сделав (isset($actual) ? 'selected' : "") verifica, если он существует $actual напечатай selected, а он это оставляет в мишени.

2
ответ дан 24.11.2019, 13:01
  • 1
    Хороший и # 237; simo, функция и # 243;! к несчастью complic и # 243; другая вещь. Я ах и # 237; я сохраняю стоимость select, проблема состоит в том, что я перехожу в другой экран, вернувшись, освежается, меня берет последняя стоимость select, но поскольку у меня есть, что я выполнил вид начиная с onchange... и стоимость select не var и # 237; в, меня не освежает консультация. Какая-то идея, чтобы этим манипулировать? Graciassss –  look68 21.10.2016, 18:58

Теги

Похожие вопросы