2016-03-25 27 views
1

夥計們我有一個下拉列表,當我按下按鈕時,我想自動標記選定的行!到目前爲止我的代碼如下所示,但我不能得到它的工作......與'"PHP的foreach表單下拉菜單與選定的標記

echo "<select id='form' name=form style='width:auto' class='form-control'> 
<optgroup label='form_name'>"; 

foreach($results as $result)          
{ 
    $ID  = $result->ID; 
    $name = $result->name; 
    $address = $result->address; 

    echo '<option value=$ID '. 

    **if(isset($_GET['form']) && $_GET['form'] == $ID){ .' selected="selected" '. } else { .''. }**        

    .'>'.$ID. ". " .$name. " [" .$address.']</option>'; 

}        
echo "</optgroup> 
</select>; 

在此先感謝!

+0

您應該使用 「」 報價$ ID使用'「<期權價值= $ ID 」'' – kunicmarko20

+0

「<選擇的id = '形式' 的名稱=形式風格=」寬度:auto''你必須把名稱放在引號 – kunicmarko20

回答

0

您可以用這種方式重寫代碼:

echo "<select id='form' name=form style='width:auto' class='form-control'> 
    <optgroup label='form_name'>"; 
    foreach($results as $result)          
    { 
     $ID  = $result->ID; 
     $name = $result->name; 
     $address = $result->address; 

     $selected = (isset($_GET['form']) && $_GET['form'] == $ID) ? ' selected="selected" ' : ''; 

     echo '<option value=$ID ' 
       . $selected 
       .'>'.$ID. ". " .$name. " [" .$address.']</option>'; 
    }        
echo " </optgroup> 
      </select>; 
+0

他們都是我相同的答案我假設!! –

+0

@ΗλιαςΤσορωμοκος正確,我們同時回答,所以我發佈我的其他用戶的答案後,否則我不會回答;) –

+0

我會給這個答案的獎金,因爲它比其他人更整潔,但是沒有硬性的感覺好嗎?!謝謝你們兩個! –

1

您必須使用ternary操作。 三元運算符只是一行中的一個簡單的「if then else」。

echo '<select id="form" name="form" style="width:auto" class="form-control">'; 
    echo '<optgroup label="form_name">'; 

    foreach ($results as $result) { 
     $id  = $result->ID; 
     $name = $result->name; 
     $address = $result->address; 

     echo '<option value="' . $id . '" ' . (isset($_GET['form']) && $_GET['form'] == $id ? 'selected="selected"' : '') . '>' . $id . '. ' . $name . ' [' . $address . ']</option>'; 
    } 

    echo '</optgroup>'; 
echo '</select>';