【问题标题】:How to set my default option select?如何设置我的默认选项选择?
【发布时间】:2014-04-25 11:16:26
【问题描述】:

我有一个主题选项页面和一个循环来获取我的类别。这段代码工作正常,我可以保存我的选项。代码如下:

function drop_elements_function(){
$my_cats = get_categories(); 
$i = 1;
foreach( $my_cats as $my_cat ) :
$my_categories[$my_cat->cat_ID] = array(
    'value' => $my_cat->cat_ID,
    'label' => $my_cat->cat_name
);
$i++;
endforeach;

$options = get_option('sandbox_theme_social_options');

echo'<select id="featured_cat" name="sandbox_theme_social_options[Drop_Elements]">';

foreach ( $my_categories as $category ){
    $label = $category['label'];
    $selected = '';
    if ( $options['Drop_Elements'] == $category['value'] )
        $selected = 'selected="selected"';
        echo '<option style="padding-right: 10px;" value="' . esc_attr( $category['value'] ) . '" ' . $selected . '>' . $label . '</option>';
    }
echo '</select>';
 //print_r($options['Drop_Elements']);
}/*Function end*/

输出如下所示:
http://www.vasinternetposao.com/img.png

问题:现在当我的主题安装第一次时,我得到了如上面屏幕截图一样的输出,但显然我的选项尚未保存到数据库中(用户必须单击保存按钮才能选择该类别)。

所以我想做这样的事情:
1.) 用户第一次安装主题,然后输出如下所示:
http://www.vasinternetposao.com/img2.png
2.) 如果用户无意中选择“选择您的类别”并单击“保存按钮” 输出将再次:
http://www.vasinternetposao.com/img2.png
3.) 如果用户选择了真正的类别(不是“选择您的类别”),那么“选择您的类别”就会消失:
http://www.vasinternetposao.com/img.png

这是我的尝试,但它不起作用:

function drop_elements_function(){
$my_cats = get_categories(); 
$i = 1;
foreach( $my_cats as $my_cat ) :
$my_categories[$my_cat->cat_ID] = array(
    'value' => $my_cat->cat_ID,
    'label' => $my_cat->cat_name
);
$i++;
endforeach;

$options = get_option('sandbox_theme_social_options');

echo'<select id="featured_cat" name="sandbox_theme_social_options[Drop_Elements]">';

foreach ( $my_categories as $category ){
    $label = $category['label'];
    $selected = '';
    if ( $options['Drop_Elements'] == $category['value'] ){
        $selected = 'selected="selected"';
        echo '<option style="padding-right: 10px;" value="' . esc_attr( $category['value'] ) . '" ' . $selected . '>' . $label . '</option>';
    }
        elseif(!isset($options['Drop_Elements'])){
        $selected = 'selected="selected"';
        echo '<option selected="selected"  value="Choose Your Category">Choose Your Category</option>'; 
        echo '<option style="padding-right: 10px;" value="' . esc_attr( $category['value'] ) . '" ' . '>' . $label . '</option>';

        }   

}/*Foreach close*/
echo '</select>';
 //print_r($options['Drop_Elements']);
}/*Function end*/

可以用 PHP 完成吗?任何帮助表示赞赏!谢谢!

【问题讨论】:

    标签: php wordpress loops foreach


    【解决方案1】:

    我认为您想要做的类似于以下示例:

    echo '<select id="featured_cat" name="sandbox_theme_social_options[Drop_Elements]">';    
    echo '<option selected="selected"  value="Choose Your Category">Choose Your Category</option>'; 
        foreach ( $my_categories as $category ){
            $label = $category['label'];
            $selected = ( $options['Drop_Elements'] == $category['value'] ) ? " selected='selected' " : "";
            echo '<option style="padding-right: 10px;" value="' . esc_attr( $category['value'] ) . '" ' . $selected . '>' . $label . '</option>';
    
        }
    echo "</select>";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-19
      • 1970-01-01
      • 1970-01-01
      • 2014-11-18
      • 2017-12-11
      • 1970-01-01
      • 2017-04-30
      • 1970-01-01
      相关资源
      最近更新 更多