簡體   English   中英

PHP MySQL的最佳實踐顯示在下拉列表中選擇

[英]php mysql best practice show selected in dropdown

我有一個很簡單的問題。 我有一個選擇下拉菜單,值為1到10。這是一個編輯屏幕,因此用戶已經選擇了應該選擇的值。 我給他們機會來改變它。 因此,我要做的就是在選項值中插入所選單詞。 為了完成這個簡單的任務,我一直在做一堆笨拙的ifs。 是否有最佳實踐或簡單方法來執行此操作。 如果那么執行所有這些操作並創建10個新變量,似乎沒有必要的開銷。 請注意,出於使html與php邏輯分開的原因,我不想順序寫出選項值,因為我將html放在單獨的區域中,只需要在適當的位置設置所選的變量即可。

if ($row['points']==1){
$select1 = "selected"}
if ($row['points']==2){
$select2 = "selected"}
//values 3 through 9
if ($row['points']==2){
$select2 = "selected"}


echo '<select name="points">';
echo '<option value = 1'. $select1.'>1</option>';
echo '<option value=2'. $select1.'>2</option>';
//values 3 through 9
echo '<option value=10'.$select10.'>10</option>';
echo '</select>';
for ($x = 1; $x <= 10; $x++) {
   echo "<option value=$x" . ($row['points'] == $x ? ' selected' : '')
      . ">$x</option>';
}

for循環對此很有用,可以使用內聯if語句來測試選定的情況

echo '<select name="points">';
for ($i=1; $i<=10; $i++) {
   echo "<option value='{$i}'".($row['points']==$i ? ' select="selected"':'').">{$i}</option>";   

}
echo '</select>';

因為您使用的是一個可選列表(不允許選擇多個列表),所以一次只能選擇一個。.尋找http://fi.php.net/str_replace

echo str_replace("value='".$selected_value."'", "value='".$selected_value."' selected", "<option value='1'>1</option><option value='2'>2</option> ....");

我使用jquery和一個隱含字段來做到這一點,該隱含字段指示<select>的選定值。

的HTML:

<input type=hidden name=points value=1>
<select name="points">
  <option value=1>1</option>
  <option value=2>2</option>
</select>

js:

$('input[type=hidden]').each(function(){
            var e = $(this);
            var name = e.attr("name");
            var val = e.val();
            if(name!="")
            {
                e.parent().find('select[name='+name+']').val(val);              
            }       
        });

暫無
暫無

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

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