我有一个关于使用form_dropdown()的问题

时间:2011-08-19 09:30:25

标签: codeigniter

我有一个关于使用form_dropdown()的问题。

表:类别

cat_id

cat_name

控制器:

function index()

{

$this->load->model('category_model');


$data['category'] = $this->category_model->cat_getallcat();


$this->load->view('category_input',$data);


 }

型号:category_model

    function cat_getallcat()

         {

     $this->load->database();

     return $this->db->get('category')->result();

        }

查看:

<?php


$this->load->helper('form');


echo form_open('send');


$list[''] = 'Please select a Category';


foreach($query as $row)

 {

$list[$row->cat_id] = ucfirst(htmlspecialchars($row->cat_name));

 }


echo form_dropdown('category', $list);


echo form_close();

?>

获得错误:

  A PHP Error was encountered



   Severity: Warning


  Message: Invalid argument supplied for foreach()


  Filename: views/category_input.php


   Line Number: 28

2 个答案:

答案 0 :(得分:1)

->result()只返回第一行,所以这个函数就是你要循环的。

模型

function cat_getallcat()
{
    $this->load->database();
    return $this->db->get('category');
}

查看

foreach($query->result() as $row)
{
    $list[$row->cat_id] = ucfirst(htmlspecialchars($row->cat_name));
}

编辑: 此外,您要将结果作为$data['category']发送,然后尝试以$query的形式访问它。所以,在这个例子中,foreach将是foreach($category->result() as $row)

答案 1 :(得分:1)

你要求foreach遍历$ query,但我没有将$ query设置为我能看到的任何变量。

由于您设置$ data ['category']来保存控制器中的查询结果(),您需要在视图中循环$ category:

foreach($category as $row)
{
    $list[$row->cat_id] = ucfirst(htmlspecialchars($row->cat_name));
}