如何在select-option标记中显示mysql数据库中的值

时间:2018-03-21 12:09:24

标签: php html mysql select

如何使select标记显示mysql表中的值,但仍然有下面的其他选项。

<select id="slct" name="psl" class="select" value="' . $row['pslAtOffice'] . '">
        <option value="Yes" >Yes</option>
        <option value="No" >No</option>
 </select>

我想首先从mysql表中看到所选的值,而不是第一个选项。

3 个答案:

答案 0 :(得分:1)

我认为你正在寻找这个:

<select  id="slct" name="psl" class="select">
        <option value="<?php echo $row['pslAtOffice']; ?>" selected><?php echo $row['pslAtOffice']; ?></option>
        <option value="Yes" >Yes</option>
        <option value="No" >No</option>
 </select>

感谢@BalázsVarga提醒我“选中”

编辑:您提到整个块都在回声中,所以我猜它应该是这样的:

echo '<select  id="slct" name="psl" class="select">
        <option value="' . $row['pslAtOffice'] . '" selected>' . $row['pslAtOffice'] . '</option>
        <option value="Yes" >Yes</option>
        <option value="No" >No</option>
 </select>';

答案 1 :(得分:0)

您需要将选定的标签添加到选项中,而不是选择的值。在您的情况下,这可能会很好:

<select  id="slct" name="psl" class="select">
    <?php if($row['pslAtOffice'] != 'Yes' && $row['pslAtOffice'] != 'No') { ?>
    <!-- This is only visible (and selected) if it's not Yes or No --->
    <option value="<?php echo $row['pslAtOffice'] ?>" selected ><?php echo $row['pslAtOffice'] ?></option>
    <?php } ?>
    <option value="Yes" <?php if($row['pslAtOffice'] == 'Yes') { echo 'selected'; } ?> >Yes</option>
    <option value="No" <?php if($row['pslAtOffice'] == 'No') { echo 'selected'; } ?>>No</option>
</select>

如果您愿意,也可以做简写:

<?php echo ($row['pslAtOffice'] == 'Yes') ? 'selected' : '' ?>

编辑: 如果整个代码都包含在echo中,则必须使用简写语句。 看看这个解决方案:

<?php

$row['pslAtOffice'] = 'Something';
echo '<select id="slct" name="psl" class="select">' . (($row['pslAtOffice'] != 'Yes' && $row['pslAtOffice'] != 'No') ? '<option value="' . $row['pslAtOffice'] . '" selected >' . $row['pslAtOffice'] . '</option>' : '') . '<option value="Yes"' . (($row['pslAtOffice'] == 'Yes') ? 'selected' : '') . '>Yes</option><option value="No"' . (($row['pslAtOffice'] == 'No') ? 'selected' : '') . '>No</option></select>';

$row['pslAtOffice'] = 'No';
echo '<select id="slct" name="psl" class="select">' . (($row['pslAtOffice'] != 'Yes' && $row['pslAtOffice'] != 'No') ? '<option value="' . $row['pslAtOffice'] . '" selected >' . $row['pslAtOffice'] . '</option>' : '') . '<option value="Yes"' . (($row['pslAtOffice'] == 'Yes') ? 'selected' : '') . '>Yes</option><option value="No"' . (($row['pslAtOffice'] == 'No') ? 'selected' : '') . '>No</option></select>';

答案 2 :(得分:0)

您需要将数据库变量(即$row['pslAtOffice'])添加到第一个选项中,而不是添加到select属性iteself中。

请查看以下代码以了解更多详情。

<select  id="slct" name="psl" class="select">
        <option value="<?php echo $row['pslAtOffice']; ?>" selected><?php echo $row['pslAtOffice']; ?></option>
        <option value="Yes" >Yes</option>
        <option value="No" >No</option>
 </select>