将link属性插入codeigniter分页的数据表

时间:2015-03-10 02:54:57

标签: php codeigniter

这是我第一次使用codeigniter的分页,这是我在那里找到的最多教程:

这是“Perusahaan”方法的控制器,这是我将调用分页功能的地方。

function perusahaan() 
    {
        $this->load->library('pagination');
        $this->load->library('table');

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

        $this->table->set_heading('ID', 'Perusahaan', 'Alamat', 'Email', 'Telephone') ; 

        $config["total_rows"] = $this->db->get('perusahaan')->num_rows();
        $config['base_url'] = 'http://localhost/femina_group/index.php/femina/perusahaan';
        $config['num_links'] = 5;
        $config["per_page"] = 5;
        $config["uri_segment"] = 3;
        $config["full_tag_open"] = '<div id="pagerr">'; 
        $config["full_tag_close"] = '</div>'; 

        $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;

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

        $data['usaha'] = $this->info->getCOmpanyList($config["per_page"], $this->uri->segment(3));  

        $this->load->view('pages/perusahaan', $data); 

    }

在模型中,我从数据库中获取数据:

function getCOmpanyList ($limit, $offset)
    {
        $this->db->select ('id, name, location, email, tlp');
        $this->db->from ('perusahaan');
        $this->db->limit($limit, $offset);
        $q = $this->db->get();
        /*
        if($q->num_rows() > 0)
            {
                foreach ($q->result() as $row)
                    {
                        $data[] = $row;
                    }
                return $data;
            }
        */
        return $q;          
    }

现在的问题出在视图中:

<div id="paginateTable">
    <?php 
    echo $this->table->generate($usaha);
    echo $this->pagination->create_links(); 
    ?>
</div>

即使它按预期成功获取数据,但我也无法在getCompanyList的行结果中插入指向每个名称的链接。

如何修改表格中的数据,以便为每个名称提供a href链接?

谢谢。



例如,从上面的查询中我得到了分页中的数据循环:

 <td>$name</td>
 <td>$address</td>
 <td>$email</td>
 <td>$tlp</td>

但是我想插入每个名字的链接:

 <td><a href="segment_3">$name</a></td>
 <td>$address</td>
 <td>$email</td>
 <td>$tlp</td>

因为我通过以下方式回应数据:

echo $this->table->generate($usaha);

我不知道如何插入每个$name的链接。

2 个答案:

答案 0 :(得分:1)

像这样转换模型函数。

function getCOmpanyList ($limit, $offset)
{
    $this->db->select ('id, name, location, email, tlp');
    $this->db->from ('perusahaan');
    $this->db->limit($limit, $offset);
    $results = $this->db->get()->result_array();
    foreach($results as &$result)
    {
        $result['name']='<a href="segment_3">'.$result['name'].'</a>';//change the name field as you wanted
    }
    return $results;
}

我认为它会起作用

答案 1 :(得分:1)

您可以创建一个重新格式化行值的函数

function reformat($rows){
   foreach ($rows as $row)
   {
     $row->name=anchor('site.com/some_controller/some_function/'.$row->id,$row->name);
   }
   return $rows;
}

在视图中你可以像这样使用

echo $this->table->generate(reformat($usaha));