[英]How to Keep the selected value of the select box after Form POST or GET
我試圖在我的網站上實現搜索功能。
當在文本框中輸入搜索關鍵字並選擇類別組合時,表單將被過帳,結果將顯示在同一頁面上。
我想要的是在發布后默認將組合的選定類別保留在表單中
例如,如果我在組合中選擇類別“汽車”,然后單擊搜索,則在提交表單后,組合應將汽車顯示為默認選擇的選項。 請幫我。 任何幫助將不勝感激
我假設您從數據庫中獲取類別。
你應該試試:
<?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>";
}
?>
假定“組合”是指“將常規選擇元素呈現為下拉菜單或列表框”,而不是“組合下拉菜單和自由文本輸入的組合框”:
輸出<option>
元素時,請對照$_POST
/ $_GET
中的已提交數據檢查該值,並輸出selected
(在HTML中)或selected="selected"
(在XHTML中)作為option元素的屬性。
這是我使用的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的情況下。 問候
<?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>
這解決了我的問題。
$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代碼后的多重選擇下拉框的解決方案
嘗試全部后,此“解決”方法將無效。 以前曾對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>
這解決了我的問題。 感謝所有回答
<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>
簡便的解決方案:如果從數據庫中獲取選擇框值,則在表單提交或表單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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.