0

好吧,这是我在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>';
}

但是第一个选项没有存储,所以当我选择一个选项然后尝试选择第一个选项时,第一个选项永远不会起作用。

你能帮助我吗?

谢谢

4

1 回答 1

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" 添加到当前过滤器的选项标签。

于 2013-07-13T01:26:16.077 回答