Как сохранить выбранное значение в поле выбора после формы POST или GET - PullRequest
1 голос
/ 25 мая 2010

Я пытаюсь реализовать функцию поиска на моем сайте.

когда ключевое слово для поиска вводится в текстовое поле и выбирается комбо категории, форма будет опубликована, и результат будет показан на той же странице.

я хочу сохранить выбранную категорию комбо по умолчанию в форме после публикации

Например, если я выбрал категорию «Автомобили» в комбо и щелкнул поиск, после отправки формы, комбо должно показывать автомобили как выбранный вариант по умолчанию. Пожалуйста, помогите мне. Любая помощь будет оценена

Ответы [ 8 ]

3 голосов
/ 25 мая 2010

Я полагаю, вы получаете категории из базы данных.

Вы должны попробовать:

<?php

$categories = $rows; //array from database
foreach($rows as $row){
     if($row['name'] == $_POST['category']){
          $isSelected = ' selected="selected"'; // if the option submited in form is as same as this row we add the selected tag
     } else {
          $isSelected = ''; // else we remove any tag
     }
     echo "<option value='".$row['id']."'".$isSelected.">".$row['name']."</option>";
}
?>
2 голосов
/ 25 мая 2010

Предполагая, что под «комбо» вы подразумеваете «Обычный элемент выбора, отображаемый как выпадающее меню или список», а не «Комбо-бокс, представляющий собой комбинацию выпадающего меню и ввода свободного текста»:

При выводе элементов <option> проверьте значение по отношению к отправленным данным в $_POST / $_GET и выведите selected (в HTML) или selected="selected" (в XHTML) в качестве атрибута элемента option .

1 голос
/ 02 июля 2015
<?php
$example = $_POST["friend"];
?>
<form method="POST">
<select name="friend">
   <option value="tom" <?php if (isset($example) && $example=="tom") echo ' selected';?>>Thomas Finnegan</option>
   <option value="anna" <?php if (isset($example) && $example=="anna") echo ' selected';?>>Anna Karenina</option>
</select>
<br><br>
<input type="submit">
</form>

Это решило мою проблему.

1 голос
/ 15 октября 2012

Вот способ использования JQuery, который я использую.

<select name="name" id="name">
  <option value="a">a</option>
  <option value="b">b</option>
</select>

<script type="text/javascript">
   $("#name").val("<?php echo $_POST['name'];?>");
</script>

Но это только если у вас есть jquery на вашей веб-странице. Привет

0 голосов
/ 11 октября 2016

Простое решение: Если выбранные значения блока извлекаются из БД, то для сохранения выбранного значения после отправки формы ИЛИ формы POST

 <select name="country" id="country">
        <?php $countries = $wpdb->get_results( 'SELECT * FROM countries' ); ?>
        <option value="">
        <?php if(isset($_POST['country'])){echo htmlentities($_POST['country']); } else { echo "Select Country *"; }?>
        </option>
        <?php foreach($countries as $country){  ?>
        <option <?php echo ($_POST['country'] == $country->country_name ? 'selected="selected"':''); ?> value="<?php echo $country->country_name; ?>"><?php echo $country->country_name; ?>
        </option>
        <?php } ?>
      </select>
0 голосов
/ 28 мая 2014

После попытки все это "решает" ничего не работает. Провел некоторое исследование w3school и помнил, что было объяснение сохранению ценностей в радио. Но это также работает для опции выбора. Смотрите здесь пример. Просто попробуйте и играйте с этим.

<?php
$example = $_POST["example"];
?>
<form method="post">        
<select name="example">
    <option <?php if (isset($example) && $example=="a") echo "selected";?>>a</option>
    <option <?php if (isset($example) && $example=="b") echo "selected";?>>b</option>
    <option <?php if (isset($example) && $example=="c") echo "selected";?>>c</option>
</select>
<input type="submit" name="submit" value="submit" />
</form>
0 голосов
/ 05 августа 2012
$countries_uid = $_POST['countries_uid'];
                while($row = mysql_fetch_array($result)){
                  $uid = $row['uid'];
                  $country = $row['country_name'];
                  $isSelected = null;
                    if(!empty($countries_uid)){
                    foreach($countries_uid as $country_uid){//cycle through country_uid
                       if($row['uid'] == $country_uid){
                        $isSelected = 'selected="selected"'; // if the option submited in form is as same as this row we add the selected
                       }
                    }
                   }else {
                    $isSelected = ''; // else we remove any tag
                  }
                  echo "<option value='".$uid."'".$isSelected.">".$country."</option>";
                }

это мои решения раскрывающегося списка множественного выбора после изменения кодов Михая Иорга

0 голосов
/ 25 мая 2010

Это решило мою проблему. Спасибо всем, кто ответил

 <select name="name" id="name">
  <option value="a">a</option>
  <option value="b">b</option>
 </select>

<script type="text/javascript">
  document.getElementById('name').value = "<?php echo $_GET['name'];?>";
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...