我正在尝试在我的网站中实施搜索功能。
当在文本框中输入搜索关键字并选择类别组合时,表单将被发布,结果将显示在同一页面上。
我想要的是在发布后的表单中默认保留所选的组合类别
例如,如果我在组合中选择“汽车”类别并单击搜索,则在表单提交后,组合应将汽车显示为默认选择选项。请帮我。任何帮助将不胜感激
答案 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