【问题标题】:Select dropdown not showing selected value php选择下拉菜单不显示所选值php
【发布时间】:2017-07-16 14:57:54
【问题描述】:

我正在使用Wordpress Settings API。除了这个select 下拉菜单外,一切都正常工作。当我选择一个选项时,回显的值是正确的,但在下拉列表中它显示默认的第一个值,即6,而不是选定的值。我哪里错了?

 public function someplugin_select() {
            $options = get_option( 'plugin_252calc');
            echo $options; //shows the correct value selected
            $items = array();
            for ($i=6; $i <=10; $i+= 0.1) 
            { 
                $items[] = $i;
            }

            echo '<select id="cf-nb" name="cf-nb">';
            foreach ( $items as $item )
            {
                echo '<option value="'. $item .'"';
                if ( $item == $options ) echo' selected="selected"';
                echo '>'. $item .'</option>';
            }

            echo '</select>';           

        }

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    您不需要两个单独的循环,只需一个 for 循环即可完成所有操作。除此之外,您还需要通过以下方式更改您的someplugin_select() 方法,

    public function someplugin_select() {
        $options = round(floatval(get_option( 'plugin_252calc')), 1);
        echo '<select id="cf-nb" name="cf-nb">';
        for ($i = 6.0; $i <= 10.0; $i += 0.1){ 
            $output = '<option value="'. $i .'"';
            if ( $options == round($i, 1) ){
                $output .= ' selected="selected"';
            }
            $output .= '>'. $i .'</option>';
            echo $output;
        }
        echo '</select>';         
    }
    

    【讨论】:

    • 谢谢。我修复了代码,但是当get_option 返回正确的选择值时,下拉菜单仍然显示第一个值6,无论我的选择如何。
    • @input 执行 var_dump($options); 并告诉我它显示的内容,包括值和类型。
    • 这是var_dumpstring(3) "7.5"的输出
    • @input 我已经更新了我的答案以及解决方案代码 sn-p。希望这能解决您的问题。
    • 做到了!非常感谢。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 2021-03-07
    • 2013-06-16
    相关资源
    最近更新 更多