如何在Form POST或GET之后保留选择框的选定值

时间:2010-05-25 13:14:23

标签: php html css

我正在尝试在我的网站中实施搜索功能。

当在文本框中输入搜索关键字并选择类别组合时,表单将被发布,结果将显示在同一页面上。

我想要的是在发布后的表单中默认保留所选的组合类别

例如,如果我在组合中选择“汽车”类别并单击搜索,则在表单提交后,组合应将汽车显示为默认选择选项。请帮我。任何帮助将不胜感激

8 个答案:

答案 0 :(得分:3)

我假设您从数据库中获取类别。

你应该尝试:

<?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>";
}
?>

答案 1 :(得分:2)

假设“combo”是指“常规选择元素呈现为下拉菜单或列表框”而不是“组合框,它是下拉菜单和自由文本输入的组合”:

在输出<option>元素时,请检查$_POST / $_GET中提交的数据的值,并输出selected(HTML格式)或selected="selected"(在XHTML中)作为选项元素的属性。

答案 2 :(得分:1)

这是我正在使用的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时才会这样。 此致

答案 3 :(得分:1)

<?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>

这解决了我的问题。

答案 4 :(得分:0)

这解决了我的问题。感谢所有回答的人

 <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>

答案 5 :(得分:0)

$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>";
                }

这是我修改Mihai Iorga代码后的多选下拉框的解决方案

答案 6 :(得分:0)

尝试了这个&#34;解决&#34;什么都行不通之前对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>

答案 7 :(得分:0)

简易解决方案: 如果选择从DB获取的框值,则在表单提交或表单POST后保留选定的值

TArrayOfAnsiChar