php中的下拉列表(帮助)

时间:2013-07-13 00:04:39

标签: php select drop-down-menu

嗯,这是我在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

1 个答案:

答案 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”添加到当前过滤器的选项标记。