嗯,这是我在stackoverflow中的第一个问题。我希望你能帮助我!
如果您愿意,我想制作一个选择框或下拉列表
所以,我有这个PHP代码:
<?php $i = 0; ?>
<?php $orders = osc_list_orders();
foreach($orders as $label => $params) {
$orderType = ($params['iOrderType'] == 'asc') ? '0' : '1'; ?>
<?php if(osc_search_order() == $params['sOrder'] && osc_search_order_type() == $orderType) { ?>
<a class="current" href="<?php echo osc_update_search_url($params); ?>"><?php echo $label; ?></a>
<?php } else { ?>
<a href="<?php echo osc_update_search_url($params); ?>"><?php echo $label; ?></a>
<?php } ?>
<?php if ($i != count($orders)-1) { ?>
<span>|</span>
<?php } ?>
<?php $i++; ?>
<?php } ?>
我试过这样的事情:
function osc_list_orders_drop() {
$orders = osc_list_orders();
echo '<select name="order" id="order" ONCHANGE="location = this.options[this.selectedIndex].value;">';
foreach($orders as $label => $params){
$orderType = ($params['iOrderType'] == 'asc') ? '0' : '1';
echo '<option value="'.osc_update_search_url($params).'">';
echo $label;
echo'</option>';
}
echo'</select>';
}
但第一个选项没有存储,所以当我选择一个选项然后尝试选择第一个选项时,第一个选项永远不会有效。
你能帮助我吗?
THX
答案 0 :(得分:0)
尝试在选择中添加空白选项标记,它将允许更改触发。
function osc_list_orders_drop() {
$orders = osc_list_orders();
echo '<select name="order" id="order" ONCHANGE="location = this.options[this.selectedIndex].value;">';
echo '<option></option>';
foreach($orders as $label => $params){
$orderType = ($params['iOrderType'] == 'asc') ? '0' : '1';
echo '<option value="'.osc_update_search_url($params).'">';
echo $label;
echo'</option>';
}
echo'</select>';
}
更好的选择是将selected =“selected”添加到当前过滤器的选项标记。