问问题
564 次
5 回答
3
您总是可以编写一个辅助函数,<option>
通过传递参数来为您提供。类似的东西
function get_option($value, $selected_value) {
return '<option value="' . $value . '" label="' . $value . '"' . ($value == $selected_value ? ' selected="selected"' : '') . '>' . $value . "</option>\n";
}
这将使您不必为每个值编写它,而是只需执行
$selected_value = '4ft 5in - 134cm';
echo get_option('4ft 5in - 134cm', $selected_value);
echo get_option('4ft 6in - 137cm', $selected_value);
//etc, etc
于 2012-05-03T12:49:17.233 回答
3
您可以将所有项目放在一个数组中,并使用 for(或 foreach)循环动态生成列表。然后只需在此循环中检查您的循环变量是否等于您的值,如果是,则分配所选属性。
像这样的东西:
<select name="height" id="height">
<option value="" label="Select">Select Height</option>
<?php
$options = array("4ft 5in - 134cm", "4ft 6in - 137cm", "4ft 7in - 139cm", /* and all your other options ... */);
$yourvalue = "4ft 6in - 137cm"; // or any valid entry
foreach($options as $option) {
echo '<option value="'.$option.'" label="'.$option.'" '. ($option == $yourvalue ? 'selected' : '') .'>'.$option.'</option>';
}
?>
</select>
于 2012-05-03T12:49:57.757 回答
3
您不能更改<select>
元素来指定这一点:它不是 HTML 规范的一部分。您可以做的是给每个option
元素一个id
,然后使用 Javascript 将正确的option
元素设置为selected
. 在 PHP 中,您需要在正确的位置输出脚本片段以让浏览器运行它。
例如
<option value="7ft - 213cm" label="7ft - 213cm" id="s23">7ft - 213cm</option>
...
<script>
document.getElementById("s23").selected=true
</script>
于 2012-05-03T12:46:12.437 回答
3
不。
多个选项可以具有相同的值,并且(如果multiple
设置了属性)可以同时选择多个选项,因此使用属性来指定值是不可行的。
于 2012-05-03T12:42:00.377 回答
0
如果您不想使用 javascript,您将不得不编写您要避免的代码。
<? $selected = "6ft 10in - 208cm"; ?>
<select name="height" id="height">
<option value="" label="Select">Select Height</option>
<? foreach ( $options as $option ): ?>
<option value="<?= $option; ?>" <?= ($option == $selected ? "selected" : ""); ?> ><?= $option; ?></option>
<? endforeach; ?>
</select>
于 2012-05-03T12:52:27.493 回答