如果select标签的选项值不是特定值,我该如何设置默认值?

时间:2013-09-12 10:24:12

标签: php html mysql

<select name="corequisite">
<option value="" selected="selected">No Corequisite</option>';
$res = mysql_query("SELECT * FROM course");
while($row = mysql_fetch_array($res)){
    echo'<option value="'.$row['Code'].'"';if($row['Code']==$result['corequisite']) echo'  
    selected="selected"';;echo'>'.$row['Name'].'</option>';
}
echo'</select>';

如果没有其他选项与$ result ['corequisite']匹配,我希望选择'No Corequisite'值。但是表格中的第一项将被选中!

我该如何解决?

可以通过插入'corequisite'作为第一条记录来修复。一个好方法?

2 个答案:

答案 0 :(得分:0)

我没有测试过,但这应该可行

<select name="corequisite">
<?php
    // this is your string that will return all your results
    $to_echo = '';

    // this will check if any value inside is selected ( this will be useful later )
    $any_item_selected = false;

    $res = mysql_query("SELECT * FROM course");
    while($row = mysql_fetch_array($res))
    {
        if($row['Code']==$result['corequisite']) // OK! so one item is selected, remember it!
        {
            $to_echo .= '<option selected="selected" value="'.$row['Code'].'">'.$row['Name'].'</option>';
            $any_item_selected = true;
        }
        else
            $to_echo .= '<option value="'.$row['Code'].'">'.$row['Name'].'</option>';
    }

    // Now we can check if anything were selected, and prepend the "No corequisite" option, selected or not! :)
    if( ! $any_item_selected)
        $to_echo = '<option value="" selected="selected">No Corequisite</option>' . $to_echo;
    else
        $to_echo = '<option value="">No Corequisite</option>' . $to_echo;

    echo $to_echo;

?>
</select>

答案 1 :(得分:0)

回答你的上一个问题,可能是一个糟糕的方式。

尝试此代码,目前在笔记本电脑上,所以没有测试过。

<select name="corequisite">
    <?php
    $res = mysql_query("SELECT * FROM course");
    $rows = mysql_num_rows($res);

    if ($rows == 0) 
    { 
         $sel = 'selected';
    } else 
    { 
         $sel = ''; 
    }

    echo '<option '.$sel.' value="">No Corequisite</option>';

    while($row = mysql_fetch_array($res))
    {
        $sel = '';
        if ($row['Code'] == $result['corequisite'])
        {
            $sel = 'selected';
        }
        echo '<option '.$sel.' value="'.$row['Code'].'">' . $row['Name'] . '</option>';
    }
    ?>
</select>