如何在 <td>blah</td> 上嵌入链接并在 CodeIgniter 中单击时调用函数
Posted
技术标签:
【中文标题】如何在 <td>blah</td> 上嵌入链接并在 CodeIgniter 中单击时调用函数【英文标题】:How to embed links on <td>blah</td> and call function on click in CodeIgniter 【发布时间】:2013-03-04 03:02:14 【问题描述】:我正在使用 codeIgnitor 的类从数据库表(即类别)创建 html 表。
这是我的控制器:
Testpagi.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Testpagi extends CI_Controller
function __construct()
parent::__construct();
public function index($offset = 0)
$search_query = $this->db->get('Categories');
$count_records = $search_query->num_rows();
// Load the tables library
$this->load->library('table');
// Load Pagination
$this->load->library('pagination');
// Config setup
$config['base_url'] = base_url().'/testpagi/index/';
$config['total_rows'] = $count_records;
$config['per_page'] = 10;
// I added this extra one to control the number of links to show up at each page.
$config['num_links'] = 5;
// Initialize
$this->pagination->initialize($config);
// Query the database and get results
$data['categories'] = $this->db->get('Categories', 10, $offset);
// Create custom headers
$header = array('S. No', 'Category Name', 'Status', 'Date Added', 'Last Modified');
// Set the headings
$this->table->set_heading($header);
// Load the view and send the results
$tmpl = array (
'table_open'=> '<table bgcolor="#F7F7F7" align="center" border="2" cellpadding="4" cellspacing="0">',
'heading_row_start' => '<tr>',
'heading_row_end' => '</tr>',
'heading_cell_start' => '<th bgcolor="#0B548C" style="color:#FFFFFF">',
'heading_cell_end' => '</th>',
'row_start' => '<tr>',
'row_end' => '</tr>',
'cell_start' => '<td bgcolor="#D4620E" >',
'cell_end' => '</td>',
'row_alt_start' => '<tr>',
'row_alt_end' => '</tr>',
'cell_alt_start' => '<td bgcolor="#B2D593">',
'cell_alt_end' => '</td>',
'table_close' => '</table>'
);
$this->table->set_template($tmpl);
$data['message'] = 'Not Exist';
$this->load->view('books_view', $data);
?>
这是我的观点:
books_view.php
<html>
<body>
<div id='results' align="center">
<?
echo $this->table->generate($categories);
echo $this->pagination->create_links();
?>
</div>
</body>
</html>
注意我正在使用$this->table->set_template($tmpl);
来设置我的表格样式。
-
我很困惑应该把
<a href=" '#' onclick="
放在哪里。 " ">
应该是什么来使 <td>
可点击。我搜索了很多,但找不到解决方案。
如何在<td>blah</td>
上嵌入链接并在CodeIgniter中点击调用函数?
图片如下:
我想在突出显示的类别上添加链接 Yellow
。
【问题讨论】:
使用javascript/Jquery对你来说重要吗?? 不,没关系。只是代码应该适合我的代码架构。 :) 【参考方案1】:我建议你使用 html 而不是 javascript
您只需对控制器稍作调整并查看代码即可完成此操作:
public function index($offset = 0)
$search_query = $this->db->get('Categories');
$count_records = $search_query->num_rows();
// Load the tables library
$this->load->library('table');
// Load Pagination
$this->load->library('pagination');
// Config setup
$config['base_url'] = base_url().'/testpagi/index/';
$config['total_rows'] = $count_records;
$config['per_page'] = 10;
// I added this extra one to control the number of links to show up at each page.
$config['num_links'] = 5;
// Initialize
$this->pagination->initialize($config);
// Query the database and get results
//CHANGE THIS
$categories = $this->db->get('Categories', 10, $offset)->result_array();
// Create custom headers
$header = array('S. No', 'Category Name', 'Status', 'Date Added', 'Last Modified');
// Set the headings
$this->table->set_heading($header);
// Load the view and send the results
$tmpl = array (
'table_open'=> '<table bgcolor="#F7F7F7" align="center" border="2" cellpadding="4" cellspacing="0">',
'heading_row_start' => '<tr>',
'heading_row_end' => '</tr>',
'heading_cell_start' => '<th bgcolor="#0B548C" style="color:#FFFFFF">',
'heading_cell_end' => '</th>',
'row_start' => '<tr>',
'row_end' => '</tr>',
'cell_start' => '<td bgcolor="#D4620E" >',
'cell_end' => '</td>',
'row_alt_start' => '<tr>',
'row_alt_end' => '</tr>',
'cell_alt_start' => '<td bgcolor="#B2D593">',
'cell_alt_end' => '</td>',
'table_close' => '</table>'
);
$this->table->set_template($tmpl);
//AND ADD THIS CODE
foreach($categories as $category)
$this->table->row(array($category['id'], '<a href="'.site_url('contoller/method/'.$category['id']).'">'.$category['category_name'].'</a>', $category['status'], $category['date_added'], $category['last_modified']));
//remember to change the keys of $category (id,category_name,status,date_added,last_modified) for the ones that you have in your database
$data['message'] = 'Not Exist';
$this->load->view('books_view', $data);
现在在您看来,只需从生成函数中删除 $categories:
<html>
<body>
<div id='results' align="center">
<?
echo $this->table->generate();
echo $this->pagination->create_links();
?>
</div>
</body>
</html>
【讨论】:
【参考方案2】:只是一个想法,使用 Jquery,首先将 class 或 id 添加到 $tmpl 数组上的 <td>
,然后使用:
<script type="text/javascript">
$(document)ready(function()
$('your-class').click(function()
window.location.replace('your link');
);
);
</script>
祝你好运!
【讨论】:
以上是关于如何在 <td>blah</td> 上嵌入链接并在 CodeIgniter 中单击时调用函数的主要内容,如果未能解决你的问题,请参考以下文章