问问题
25614 次
4 回答
6
Select 在 HTML 中没有 value 属性 - 您可以选择多个选项,这由 option 元素上的 selected 属性确定
肮脏的方式:
<select name="status">
<option<?php if ($row['status'] == "In Inventory"): ?> selected="selected"<?php endif; ?>>In Inventory</option>
<option<?php if ($row['status'] == "In Process"): ?> selected="selected"<?php endif; ?>>In Process</option>
<option<?php if ($row['status'] == "Shipped/in-transit"): ?> selected="selected"<?php endif; ?>>Shipped/in-transit</option>
<option<?php if ($row['status'] == "Received by recipient"): ?> selected="selected"<?php endif; ?>>Received by recipient</option>
</select>
稍微好一点的方法:
<?php
$options = array("In Inventory", "In Process", "Shipped/in-transit", "Received by recipient");
?>
<select>
<?php foreach ($options as $option): ?>
<option value="<?php echo $option; ?>"<?php if ($row['status'] == $option): ?> selected="selected"<?php endif; ?>>
<?php echo $option; ?>
</option>
<?php endforeach; ?>
</select>
最好的方法 - 将这些选项存储在数据库表中 - 可能更好地使用 ID 值而不是字符串(允许更轻松地更新选项标签)并循环从数据库查询中获取的可能选项,就像我上面的那样。如果此选择列表被大量使用,请缓存查询结果以获取选项(请记住,如果列表更新,您需要清除缓存)
于 2013-06-12T22:22:30.670 回答
0
我发现的更简单的代码,仅使用 JavaScript(不需要 jQuery)。把它放在列表框的声明之后,并在那里设置选定的索引:
<script>
document.getElementById('listBoxId').selectedIndex=<?php echo $INDEX ?>;
</script>
于 2015-02-20T12:03:19.863 回答
0
每个选项都有其对应的值,而不是选择标签。因此,您必须将每个选项的值与状态进行比较。
于 2013-06-12T22:24:45.793 回答
0
您必须检查每一个是否是选定的,例如:
<option <?php if ($row['status'] == 'In Process') echo 'selected'; ?>>In Process</option>
如果你使用 jQuery,你可以做一个更干净的解决方案,在你的情况下给你的选择标签一个 id,然后:
$(document).ready(function() {
$('#select-id option:contains("<?php echo $row['status']; ?>")').prop('selected', true);
});
于 2013-06-12T22:28:35.903 回答