在下拉式 PHP MSQL 上设置所选项


setting the selected item on a dropdown php msql

我正在创建一个页面,我想在其中显示从数据库中捕获的信息。 我想显示的项目之一是下拉列表菜单中的选定值,但默认为选定的封面

我使用以下函数来显示下拉列表:

//function to display the cover in the dropdown
//function to display the cover in the dropdown
    public function coverdropdown($companyid, $coverid)
    {
        $mydata = mysql_query("SELECT a.`coverid`, a.`cover_name`, a.`sum_insured`, a.`info`
                    FROM covertype a WHERE a.`companyid`=$companyid");
            while($record = mysql_fetch_array($mydata))
                {
                    echo '<option  value="'.$record['coverid'].'" if ($record['coverid']==$coverid) {selected=selected}">'.$record['cover_name'].' - R'.$record['sum_insured'].'</option>'; 
                }
    }

我希望下拉列表显示选定的封面。我知道它是这样的:

<option value="" selected="selected">XYZ cover</option>

但是现在我不确定如何将其添加到此行中,因为我添加的 if 语句不起作用,其语法不正确:

while($record = mysql_fetch_array($mydata))
            {
               echo '<option  value="'.$record['coverid'].'" if ($record['coverid']==$coverid) {selected=selected}">'.$record['cover_name'].' - R'.$record['sum_insured'].'</option>'; 
            }

您应该能够在<option>之前分配一个变量。类似于:

while($record = mysql_fetch_array($mydata)) {
        // One thing to note: In XHTML the selected attribute should probably be defined as <option selected="selected">.
        // In regular HTML <option selected> is ok
        $selected   =   ($record['coverid'] == $coverid)? ' selected="selected"':'';
        echo '<option  value="'.$record['coverid'].'"'.$selected.'>'.$record['cover_name'].' - R'.$record['sum_insured'].'</option>'; 
    }

这必须完成工作:

while($record = mysql_fetch_array($mydata)){
    if($record['coverid']==$coverid)
        echo '<option  value="'.$record['coverid'].' selected>'.$record['cover_name'].'</option>';
    else
        echo '<option  value="'.$record['coverid'].'>'.$record['cover_name'].'</option>';
}