在CI分页数据中添加复选框

时间:2011-05-02 14:07:03

标签: php codeigniter

如何在codeigniter powered app中为分页数据的每一行添加复选框? 这是我的代码

            $this->load->library('pagination');
            $config['base_url'] = base_url().'index.php/admin/editquestiontopics';
            $config['total_rows'] = $this->db->count_all('tbl_advice_topics');
            $config['per_page'] = '5';
            $config['full_tag_open'] = '<p>';
            $config['full_tag_close'] = '</p>';

            $this->pagination->initialize($config);

            $this->load->model('advice_topics_model');
            $data['results'] = $this->advice_topics_model->get_topics($config['per_page'],$this->uri->segment(3));

            $this->load->library('table');
            $this->table->set_heading('ID','Topic');

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

        //this my model func()
    public function get_topics($num, $offset)
    {
    $query = $this->db->get('tbl_advice_topics',$num,$offset);
    return $query;
    }

       //this is my view code
        <?php echo $this->table->generate($results); ?>
    <?php echo $this->pagination->create_links(); ?>

1 个答案:

答案 0 :(得分:3)

这与Codeigniter分页没有任何关系。看起来更像是你在“adminadvicetopics”视图中所做的事情,甚至是你模型中的“get_topics”函数。

发布这些代码,我们会更好地回答您的问题。

编辑:现在我已经看到了您的代码,我发现您无法在视图中设置此代码。 如果你必须在这个实例中使用codeigniter的表类,并且仍然想使用查询结果作为输入,那么你将不得不在查询本身中添加复选框!这是一个相当混乱的方法,但看起来像这样:

public function get_topics($num, $offset)
{
    $sql = "SELECT 
               CONCAT('<input name=\"row_', `id`,  '\" type=\"checkbox\" value=\"row_', `id`,  '\" />') AS First_Column, 
               `Second_Column`, 
               `Third_Column` 
            FROM 
               `tbl_advice_topics` 
            LIMIT $offset, $num";
    $query = $this->db->query($sql);
    return $query;
}

更可接受的方法是将查询结果转换为表类可以使用的三维数组(如图here所示)。然后,您可以在此处添加复选框,并对输出进行更多控制。