Codeigniter - 将查询result_arry()发送到view for form_dropdown

时间:2012-10-18 00:19:52

标签: codeigniter-2

我正在使用form_dropdown()并遇到以下问题:

表单代码为:

echo form_dropdown($ level,$ level_options,'1');

我使用

时有效
$level_options = array(
                  '1'  => 'Grade 6',
                  '2'    => 'Grade 7'
                );

但不是当我从控制器发送$ data ['levels']来查看

作为参考,模型数据库检索代码是:

public function getAllLevelNames() {
   $query = $this->db->query("SELECT level_description from levels ORDER BY level_description");
   return $query->result_array();
}

问题

问题是我得到一个下拉选项列表:

0

Grade 6

1

Grade 7

索引显示为灰色。

如何摆脱索引?

提前致谢!

P.S。

我似乎现在正在使用发送到视图的数据['levels']的表单。现在,我视图中的以下代码似乎向我的控制器返回“null”。有什么想法可以吗?

$level = array(
              'name'        => 'level',
              'id'          => 'level',
              'value'       => '1',
              'maxlength'   => '50',
              'size'        => '50',
              'style'       => 'width:50%',
            );


$level_options = $levels;

echo "<p>Level: ";
echo form_dropdown($level,$level_options,'1');

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要遍历results_array并创建一个格式正确的新数组。

$query = $this->db->query("SELECT level_description from levels ORDER BY level_description");

$for_dropdown = array();
foreach ($query->result_array() as $row) {
    $for_dropdown[$row->level_description] = $row->level_description;
}

return $for_dropdown;

此外,我不确定你的levels表的结构如何,但通常你会得到某种ID,这将是主键。如果你有这个,你可以将它包含在你的查询中,并改为:

$query = $this->db->query("SELECT id, level_description from levels ORDER BY level_description");
... // other code
    $for_dropdown[$row->id] = $row->level_description;