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);
}
好的,我在这里有两个类别 - 一个是产品类别,另一个是属于其中一个产品类别的系列类别。产品类别可能有也可能没有系列类别。
我需要制作一个这样的下拉菜单:
给出的代码完全有效,除了我不知道如何处理空的optgroups:S
我用谷歌搜索了如何生成像C& C这样的空选择组。 D但是还没有找到解决方案或任何人都尝试过它:(有没有人知道我应该如何生成一个多维数组来实现呢?谢谢。
答案 0 :(得分:1)
查看CI的核心代码,这是不可能的。但是,通过编辑核心文件可以很容易地解决它,因为我认为你可以通过编辑核心文件来“逃脱”是因为它不会影响你的下拉菜单中的任何其他内容:
/system/helpers/form_helper.php
form_dropdown
函数if(empty($optgroup_val)) continue;
循环optgroup
醇>
你foreach
循环现在应该如下所示:
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_为前缀 (此项目是可配置的。见下文。)。