在值比较后选择返回选择控件

时间:2013-06-30 06:13:40

标签: php

我试图在不使用模板框架的情况下从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";
       }
    }

2 个答案:

答案 0 :(得分:1)

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

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

应该适合你。您也可能希望更改函数以在条件不为真的情况下返回空字符串。

function sel($rs, $status) {
    return ($rs == $status) ? "selected" : "";
}

答案 1 :(得分: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转义。