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