2

我正在使用 form_dropdown 创建一个下拉框。它可以正常工作,因为所有值都已正确列出,并且在我提交所选选项时实现了所需的类别过滤。然而,在结果视图中,下拉菜单显示“按类别过滤”,而我希望它显示 $selected_category,它是一个字符串。

这是代码:

echo form_dropdown('company_category_ids', array(0 => ' Filter by Category ') + $unique_category_ids, $selected_category, ' id="category"');?>

感谢您的任何帮助或建议!

编辑 - 添加变量的内容:

$unique_category_ids:

    Array( [58] => Coffee/Tea Accessories [179] => Food Storage [247] => Outdoor Trash)

$selected 类别可以是这三个项目中的任何一个(咖啡/茶配件、食品储存或户外垃圾)。

4

3 回答 3

2

我认为数组中可能存在问题。我觉得应该是...

$unique_category_ids = array("value_1" => "Filter by Size", "value_2" => "Filter by Color");
$selected_category = "value_2"; //just for example
echo form_dropdown('company_category_ids', array("value_3" => ' Filter by Category ') + $unique_category_ids, $selected_category, ' id="category"');
于 2013-09-10T05:35:10.633 回答
0

好吧,从我使用 CI 的经验来看,问题似乎出在格式上。这就是你所拥有的:

echo form_dropdown(
            'company_category_ids',  <----GOOD (this is the name of the Select tag)
            array(0 => ' Filter by Category '), <----WRONG this array should be your options
            $unique_category_ids, <---GOOD options
            $selected_category, <--GOOD
            'id="category"'); <---Good

问题似乎是您的参数太多。这应该最多需要 4 个参数。你的代码应该是这样的:

$unique_category_ids = array(0 => ' Filter by Category ');
$selected_category = '0';
echo form_dropdown(
            'company_category_ids',
            $unique_category_ids, 
            $selected_category,
            'id="category"');
于 2013-09-10T01:44:38.893 回答
0

@jeemeesu 感谢您的评论。我最初应该发布更完整的信息。 $selected_category是一个文本字符串,由 a 定义$selected_category_id

$selected_category=$unique_category_ids[$selected_category_id];

其中$selected_category_id是 58、179 或 247。问题是我使用的是$selected_category(咖啡/茶配件、食品储藏室或户外垃圾)而不是$selected_category_id.

于 2013-09-10T19:40:59.423 回答