我正在向我的搜索页面添加一个排序选项。我正在使用两种选择表单输入类型,一种用于排序字段,另一种用于 ASC/DESC。我的第一个选项带有 value="" 和文本“Select one...”。
<label for="sort[order_by_field]">Field</label><select name="sort[order_by_field]" id="combobox">
<option value="">Select one...</option>
<optgroup label="---">
<option value="finding_incident_number"<?php echo ($field == 'finding_incident_number' ? ' selected="selected"': false); ?>>Incident #</option>
<option value="finding_violation_type"<?php echo ($field == 'finding_violation_type' ? ' selected="selected"': false); ?>>Finding</option>
<label for="sort[order_by_direction]">Direction</label>
<select name="sort[order_by_direction]">
<option>Select one...</option>
<option value="ASC"<?php echo ($dir == 'ASC' ? ' selected="selected"': false); ?>>Ascending</option>
<option value="DESC"<?php echo ($dir == 'DESC' ? ' selected="selected"': false); ?>>Descending</option>
</select>
提交表单后,我检查 isset($_POST['sort']). 它已设置。我还检查了!empty。它总是 !empty。我想知道用户是否真的做出了选择。有没有办法设置它,这样我就不必检查单个数组值,即 isset($_POST['sort']['order_by_field'])?我希望将来有一个动态数量的可添加/可移动的按字段排序。
我想我可以使用 optiongrp 标签,但那不会是语义标记吗?我想它会工作。
从更广泛的角度来看,将“选择一个...”放在表单下拉列表中是一种好习惯吗?