2016-03-25 43 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>';