[英]PHP: select current option
我有一個包含所有類別(ID,類別)和所有事件(ID,事件,類別ID)的表。
在事件編輯表單上,我具有包含所有類別的select
字段(從數據庫獲取)。 但是因為我正在開發一個編輯表單,所以我需要默認選擇當前類別。
這是我的選擇字段(PHP方法從數據庫獲取所有類別,並按以下順序排列它們):
<option value="1">Cat1</option>
<option value="2">Cat2</option>
<option value="3">Cat3</option>
<option value="4">Cat4</option>
<option value="5">Cat5</option>
假設當前事件在類別3下,所以我需要生成以下HTML:
<option value="1">Cat1</option>
<option value="2">Cat2</option>
<option value="3" selected>Cat3</option>
<option value="4">Cat4</option>
<option value="5">Cat5</option>
如果我有catID,如何使用PHP實現?
希望這個問題很清楚。 對不起,我的解釋不好
UPD:這是我的生成類別列表的PHP代碼:
public function getCatList($conf) {
$mysqli = $this->dbConnect($conf);
// Quering...
$query = "SELECT * FROM categories";
$result = $mysqli->query($query);
while($row = mysqli_fetch_array($result)) {
echo '<option value="' . $row['id'] . '">' . $row['category'] . '</option>';
}
}
你可以像
while($row = mysqli_fetch_array($result)) {3
echo '<option value="' . $row['id'] . '"';
//if condition is met then make the option selected
if($row['categoryID'] == 3) {
echo " selected='selected' ";
}
echo '>' . $row['category'] . '</option>';
}
將條件附加到您的while
迭代中將為您解決以下問題:
while($row = mysqli_fetch_array($result)) {
$isSelected = $row['id'] == $catID;
echo '<option '.($isSelected ? 'selected="selected"' : '').' value="' . $row['id'] . '">' . $row['category'] . '</option>';
}
如果當前值與$catID
存儲的值相同,則進行比較-並將布爾結果存儲在變量中。 在回顯中,您只是在進行有條件的派生,如果值是true,則附加selected
屬性,否則不附加任何空字符串。
您應該將所選的catID作為參數添加到getCatList
。 然后只需更改HTML的創建以包括selected屬性:
public function getCatList($conf, $catID = 0) {
$mysqli = $this->dbConnect($conf);
// Quering...
$query = "SELECT * FROM categories";
$result = $mysqli->query($query);
while($row = mysqli_fetch_array($result)) {
echo '<option value="' . $row['id'] . '"' . ($row['id']==$catID?' selected':'') . '>' . $row['category'] . '</option>';
}
}
現在,您只需將catID傳遞給您的函數即可:
$myConf = "something";
$myCatID = 3;
getCatList($myConf, $myCatID);
//query for the categories and options
$current_value = 3;
$total_num_of_options = mysql_num_rows($your_query_result);
for($count = 1; $count <= $total_num_of_options){
echo "<option value='".$count."' ";
if($count == $current_value)
echo "selected";
echo ">cat".$count."</option>";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.