phpforeach表单下拉菜单,带有选定的标记


php foreach form dropdown menu with selected tag

伙计们,我有一个下拉列表,当我按下按钮时,我想自动标记所选的行!到目前为止,我的代码如下所示,但我无法让它工作。。。与'"

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>;  

提前感谢!!!

您必须使用三元运算符。三元运算符是一行中的简单"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>';

您可以通过以下方式重写代码:

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>;