簡體   English   中英

如何在下拉菜單中首先回顯先前選擇的選項?

[英]How to echo previously selected option in drop down first?

我正在使用下面的跟隨位。 我首先查詢數據庫以查看所有可用選項,但這是用於編輯表單的,因此我希望下拉列表顯示先前選擇的值,因此我進行了另一個查詢並獲得了選擇。 當我按照下面的方式操作時,它將在每個可用選項之后繼續重復先前選擇的選擇。 如何解決這個問題?

<option>Select Sales rep</option>
<?php

$query="select agent_id, agent_name from agent_names where agent_id='$ad' 
order by agent_name asc";
$result=mysql_query($query);
while(list($agent_id, $agent_name)=mysql_fetch_row($result)) {
    echo "<option value=\"".$previousname."\">".$previousselection."</option>
    <option value=\"".$agent_id."\">".$agent_name."</option>";
}


?>

只需檢查$agent_id等於$previousname (也許是$previousid嗎?),然后回顯selected =“ selected”:

while(list($agent_id, $agent_name)=mysql_fetch_row($result)) {
    $selected = $agent_id == $previousname;
    echo "<option " . ($selected ? "selected=\"selected\"" : "") . " value=\"".$agent_id."\">".$agent_name."</option>";
}

另一種選擇是在while循環之前輸出先前選擇的項目,並將其排除在sql查詢中。

您應該暫時不要選擇previos。..像這樣:

<?php

$query="select agent_id, agent_name from agent_names where agent_id='$ad' 
order by agent_name asc";
$result=mysql_query($query);
echo "<option value=\"".$previousname."\">".$previousselection."</option>";
while(list($agent_id, $agent_name)=mysql_fetch_row($result)) {
    echo "<option value=\"".$agent_id."\">".$agent_name."</option>";
}


?>

甚至添加一個if,它不會自我重復:

$query="select agent_id, agent_name from agent_names where agent_id='$ad' 
order by agent_name asc";
$result=mysql_query($query);
echo "<option value=\"".$previousname."\">".$previousselection."</option>";
while(list($agent_id, $agent_name)=mysql_fetch_row($result)) {
  if ($agent_id != $previousname) {
    echo "<option value=\"".$agent_id."\">".$agent_name."</option>";
  }
}

?>

您可以強制MySQL首先在列表中返回所需的結果,如下所示:

$query = "SELECT agent_id, agent_name FROM agent_names WHERE agent_id='$ad' 
ORDER BY agent_id = '{$previousname}' DESC, agent_name ASC";

這告訴MySQL首先按與先前選擇匹配的agent_id進行排序(即對於先前選擇的記錄它將為1 ,對於所有其他記錄將為0 ,因此,通過它進行排序, DESC使其在列表中排在首位。而且由於所有其他字段的該字段等於0 ,它們將按第二個字段(即agent_name ASC排序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM