首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CodeIgniter]使用form_dropdown的空Optgroup

CodeIgniter]使用form_dropdown的空Optgroup
EN

Stack Overflow用户
提问于 2013-10-13 13:31:40
回答 1查看 2.9K关注 0票数 1
代码语言:javascript
复制
    foreach($product_categories as $product_category)
    {
        $options = array();
        foreach($series_categories as $series_category)
        {
            if($product_category['prod_cate_idx'] == $series_category['prod_cate_idx'])
            {
                $options[$series_category['series_cate_idx']] = $series_category['series_cate_name'];
            }
        }
        if(count($options) > 0)
        {
            $series_category_dropdown[$product_category['prod_cate_name']] = $options;
        }
        else
        {
            //problem here. how to make a empty optgroup?
            $series_category_dropdown[$product_category['prod_cate_name']] = array('', NULL);
        }
        empty($options);
    }

好的,我这里有两种类型--一种是产品类别,另一种是属于一个产品类别的系列类别。产品类别可能有也可能没有系列类别。

我需要这样做一个下拉菜单:

  • 一个
    • 一个
    • 一个
    • 一个
    • 一个

  • B
    • B
    • B
    • B

  • C
  • D
  • E
    • E
    • E
    • E

给出的代码非常有效,只是我不知道如何处理空的optgroup :S

我在谷歌上搜索了很多东西,想知道如何生成像C&D这样的空光学组,但还没有找到解决方案,也没有人尝试过:(有人知道我应该如何生成多维数组才能实现这一点吗?)谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-13 17:55:59

纵观CI的核心代码,这是不可能的。但是,通过编辑一个核心文件可以很容易地修复它,我认为您可以在这里编辑一个核心文件,因为它不会对下拉菜单中的其他任何内容产生影响:

  1. 导航到/system/helpers/form_helper.php
  2. 查找form_dropdown函数
  3. if(empty($optgroup_val)) continue;循环之后添加optgroup

您的foreach循环现在应该如下所示:

代码语言:javascript
复制
foreach ($val as $optgroup_key => $optgroup_val)
{
    // add this line
    if(empty($optgroup_val)) continue;

    $sel = (in_array($optgroup_key, $selected)) ? ' selected="selected"' : '';

    $form .= '<option value="'.$optgroup_key.'"'.$sel.'>'.(string) $optgroup_val."</option>\n";
}

正如我前面所说的,通常我不建议编辑核心文件,而是扩展CI助手类,CI也是如此(这只是更多的工作):

要“扩展”帮助程序,请在应用程序/帮助程序/文件夹中创建一个文件,其名称与现有的帮助程序相同,但前缀为MY_ (此项是可配置的)。见下文。)。

参考资料: in Helper Functions

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19345813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档