天天看點

玩轉jQuery設計資料表格:實作AJAX功能

  <b>測試運作</b>

  現在,我們可以在CI中測試運作下我們所寫的資料表格助手類是否有效果,在測試前,先在MYSQL中建立資料表如下:

CREATE DATABASE `dg_test`;

CREATE TABLE `users` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`username` varchar(80) NOT NULL,

`password` varchar(32) NOT NULL,

`email` varchar(255) NOT NULL,

UNIQUE KEY `id` (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

  并插入一些初始資料

INSERT INTO `users` (`id`, `username`, `password`, `email`) VALUES

(1, 'david', '12345', '[email protected]'),

(2, 'maria', '464y3y', '[email protected]'),

(3, 'alejandro', 'a42352fawet', '[email protected]'),

(4, 'emma', 'f22a3455b2', '[email protected]'

  接下來,編寫控制層的測試檔案,命名為test.php,儲存在application/controller目錄下,代碼如下:

class Test extends CI_Controller{

function __construct(){

parent::__construct();

$this-&gt;load-&gt;helper(array('datagrid','url'));

$this-&gt;Datagrid = new Datagrid('users','id');

}

function index(){

$this-&gt;load-&gt;helper('form');

$this-&gt;load-&gt;library('session');

$this-&gt;Datagrid-&gt;hidePkCol(true);

$this-&gt;Datagrid-&gt;setHeadings(array('email'=&gt;'E-mail'));

$this-&gt;Datagrid-&gt;ignoreFields(array('password'));

if($error = $this-&gt;session-&gt;flashdata('form_error')){

echo "$error";

echo form_open('test/proc');

echo $this-&gt;Datagrid-&gt;generate();

echo Datagrid::createButton('delete','Delete');

echo form_close();

function proc($request_type = ''){

$this-&gt;load-&gt;helper('url');

if($action = Datagrid::getPostAction()){

$error = "";

switch($action){

case 'delete' :

if(!$this-&gt;Datagrid-&gt;deletePostSelection()){

$error = 'Items could not be deleted';

break;

if($request_type!='ajax'){

$this-&gt;session-&gt;set_flashdata('form_error',$error);

redirect('test/index');

} else {

echo json_encode(array('error' =&gt; $error));

die("Bad Request");

?&gt;

本文轉自 wws5201985 51CTO部落格,原文連結:http://blog.51cto.com/wws5201985/735583,如需轉載請自行聯系原作者