2011-04-10 2 views
0

У меня есть следующий код, чтобы создать таблицуСоздать ссылку внутри HTML таблицы

$query = $this->search_employee->getAll($config['per_page'], $this->uri->segment(3)); 

    $this->table->set_heading('Name', 'Department'); 
    $tmp = array ('table_open' => '<table border="0" cellpadding="2" cellspacing="1" width="70%">'); 
    $this->table->set_template($tmp); 

    $data['main_content'] = 'display_professors'; 
    $data['table'] = $this->table->generate($query); 

Мой вопрос, как я могу создать ссылку под каждой строке в столбце Name, что ссылки на view_employee/ID

Я использую codeigniter table class.

ответ

2

Там может быть лучший способ сделать это, но я просто перебрать строки запроса для создания строки таблицы:

if ($query->num_rows() > 0) 
{ 
    foreach ($query->result() as $row) 
    { 
     $this->table->add_row(anchor('view_employee/ID/' . $row->employee_id, $row->employee_name), $row->employee_department); 
    } 
} 

$data['table'] = $this->table->generate(); 

и т.д ...

UPDATE:

Per ваш комментарий к этому ответу, я не вижу, как этот метод больше помещает html в модель, чем ваш собственный пример. В конце концов, в любом случае все, что вы сделаете в представлении, равно <?= $table; ?> или тому подобное.

Если вы абсолютно хотите, чтобы отделить два, вы могли бы сделать:

$data['rows'] = array();  

if ($query->num_rows() > 0) 
{ 
    foreach ($query->result() as $row) 
    { 
     $this_row = array(); 
     $this_row['link'] = site_url('view_employee/ID/' . $row->employee_id); 
     $this_row['employee_name'] = $row->employee_name; 
     $this_row['employee_department'] = $row->employee_department; 

     $data['rows'][] = $this_row; 
    } 
} 

, а затем в виде:

<table border="0" cellpadding="2" cellspacing="1" width="70%"> 
    <tr> 
    <th>Name</th> 
    <th>Department</th> 
    </tr> 
<? foreach($rows as $row): ?> 
    <tr> 
    <td><a href="<?= $row['link']; ?>"><?= $row['employee_name']; ?></a></td> 
    <td><?= $row['employee_department']; ?></td> 
    </tr> 
<? endforeach; ?> 
</table> 
+0

проблема такого подхода заключается в том, что вы ставите «HTML» в модель... – ebecker

Смежные вопросы