0

我试图在不使用模板框架的情况下从我的 html 中删除尽可能多的代码,我不确定为什么'selected'没有返回为'selected'选择框的选项定义。$row_status填充选项 ok 并$status分配一个值。

我在这方面做得不够吗?

    <select id='status'>
     <option>Please Select</option>
     <?php while($row_status = mysqli_fetch_assoc($results_status)): ?>
     <option <?php sel($row_status['list_value'],$status)?> >  <?php echo $row_status['list_value'] ?>  </option>
     <?php endwhile; ?>
    </select>

    function sel($rs, $status){
       if ($rs==$status){
          return "selected";
       }
    }
4

2 回答 2

1

您只是返回一个值,而不是回显它。

<?php echo sel(...); ?>

应该为你工作。如果条件不成立,您可能还想更改函数以返回空字符串。

function sel($rs, $status) {
    return ($rs == $status) ? "selected" : "";
}
于 2013-06-30T06:16:01.273 回答
0

您可以通过其参数使用sprintf()和传递条件和值来简化代码:

while ($row_status = mysqli_fetch_assoc($results_status)) {
    echo sprintf('<option%s>%s</option>',
        $row_status['list_value'] == $status ? ' selected' : '',
        htmlspecialchars($row_status['list_value'], ENT_QUOTES, 'UTF-8')
    );
}

我也添加了正确的 HTML 转义。

于 2013-06-30T06:24:07.983 回答