我試圖在我的網站中實現搜索功能。如何保持表格POST或GET後的選擇框的選定值
當在文本框中輸入搜索關鍵字並選擇類別組合後,表單將被張貼並且結果將顯示在同一頁面上。
我想是默認的形式,以保持組合的選定類別發佈
對於如。之後,如果我選擇在組合類「汽車」,並點擊搜索,表單提交後,該組合應該將汽車顯示爲默認選擇的選項。請幫幫我。任何幫助將不勝感激
我試圖在我的網站中實現搜索功能。如何保持表格POST或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)。
這解決了我的問題。感謝所有這些修改米哈伊Iorga碼
$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>";
}
這是我的多個選擇下拉框中的解決方案。
<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。 Regards
這裏是我使用jQuery的方法後回答
<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>
試過這個「解決」沒有任何工作。在之前做過關於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>
<?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>
這解決了我的問題。
簡單的解決方案: 如果從數據庫獲取的選擇框中的值,然後繼續選擇價值形態後提交或表單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>