精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用jQuery設計數據表格之實現Ajax功能

開發 前端
本文使用了php中的著名開發框架CI以及jQuery,指導讀者如何構建了一個通用的數據表格幫助類,并且擁有ajax的功能(借助jQuery實現)。讀者從中可以學到不少CI框架以及jQuery的技巧和知識。

當前在Web開發中,jQuery和PHP無疑是絕佳的配合。其中PHP由于其簡單易用,深得開發者的喜愛,而jQuery則由于在前端開發中的靈活和簡單,功能強大,可以做出很多很眩目的效果。在上篇文章中,主要講述了設計表格基類,本文將主要介紹測試和運行部分,以及加入AJAX功能,整合jQuery。

測試運行

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

  1. CREATE DATABASE `dg_test`;  
  2.   CREATE TABLE `users` (  
  3.   `id` int(11) NOT NULL AUTO_INCREMENT,  
  4.   `username` varchar(80) NOT NULL,  
  5.   `password` varchar(32) NOT NULL,  
  6.   `email` varchar(255) NOT NULL,  
  7.   UNIQUE KEY `id` (`id`)  
  8.   ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; 

并插入一些初始數據

  1. INSERT INTO `users` (`id`, `username`, `password`, `email`) VALUES  
  2.  (1, 'david''12345''david@domain.com'),  
  3.  (2, 'maria''464y3y''maria@domain.com'), (3, 'alejandro''a42352fawet''alejandro@domain.com'),  
  4.   (4, 'emma''f22a3455b2''emma@domain.com' 

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

  1. class Test extends CI_Controller{  
  2.   function __construct(){  
  3.   parent::__construct();  
  4.   $this->load->helper(array('datagrid','url'));  
  5.   $this->Datagrid = new Datagrid('users','id');  
  6.   }  
  7.   function index(){  
  8.   $this->load->helper('form');  
  9.   $this->load->library('session');  
  10.   $this->Datagrid->hidePkCol(true);  
  11.   $this->Datagrid->setHeadings(array('email'=>'E-mail'));  
  12.   $this->Datagrid->ignoreFields(array('password'));  
  13.   if($error = $this->session->flashdata('form_error')){  
  14.   echo "$error";  
  15.   }  
  16.   echo form_open('test/proc');  
  17.   echo $this->Datagrid->generate();  
  18.   echo Datagrid::createButton('delete','Delete');  
  19.   echo form_close();  
  20.   }  
  21.   function proc($request_type = ''){  
  22.   $this->load->helper('url');  
  23.   if($action = Datagrid::getPostAction()){  
  24.   $error = "";  
  25.   switch($action){  
  26.   case 'delete' :  
  27.   if(!$this->Datagrid->deletePostSelection()){  
  28.   $error = 'Items could not be deleted';  
  29.   }  
  30.   break;  
  31.   }  
  32.   if($request_type!='ajax'){  
  33.   $this->load->library('session');  
  34.   $this->session->set_flashdata('form_error',$error);  
  35.   redirect('test/index');  
  36.   } else {  
  37.   echo json_encode(array('error' => $error));  
  38.   }  
  39.   } else {  
  40.   die("Bad Request");  
  41.   }  }  
  42.  }  
  43.  ?> 

下面簡單分析下這個測試類文件。首先在其構造函數中,加載了編寫的datagrid數據表格helper文件和CI中的url helper類,并且通過

  1. $this->Datagrid = new Datagrid('users','id'); 

初始化了數據助手類的構造方法,指定了表名是users,數據列為id。接著,通過

  1. $this->Datagrid->setHeadings(array('email'=>'E-mail')); 

設置了要顯示的表頭中,將email顯示為E-MAIL。并通過

  1. $this->Datagrid->ignoreFields(array('password')); 

設置了,在數據表格列中不顯示password一列。再接下來,則是調用generate()方法生成表格。而在proc()方法中,則負責處理用戶對選擇并刪除記錄的處理,而在if($request_type!='ajax'){ ……}的這段代碼中,則判斷是否屬于ajax調用,如果不屬于ajax調用,則正常返回出錯提示信息,否則則使用json_encode方法返回錯誤信息,這個技巧也是很常用的,之所以這樣做,其目的是為了能同時滿足ajax及非ajax的調用。

最后運行的效果如下圖:

 

 

 

整合jQuery加入AJAX功能

現在,我們可以為其加入AJAX功能了,這就要整合jQuery。由于本文不是初學者的教程,因此不會講解jQuery方面的知識,而是直接講解如何整合。首先新建一個文件夾,命名為js,然后里面放置jQuery的庫文件,并且新建立user.php文件,代碼如下:

  1. <html> 
  2. <head> 
  3.    <title>Users Management</title> 
  4.    <script src="<?php echo base_url(); ?>js/jquery-1.6.3.min.js"></script> 
  5.    <script src="<?php echo base_url(); ?>js/datagrid.js"></script> 
  6. </head> 
  7. <body> 
  8. <?php 
  9.       $this->Datagrid->hidePkCol(true);  
  10.       if($error = $this->session->flashdata('form_error')){  
  11.          echo "<font color=red>$error</font>";  
  12.       }  
  13.       echo form_open('test/proc',array('class'=>'dg_form'));  
  14.       echo $this->Datagrid->generate();  
  15.       echo Datagrid::createButton('delete','Delete');  
  16.       echo form_close();  
  17. ?> 
  18. </body> 
  19. </html> 

由于我們這里是采用ajax的方式去判斷用戶選擇表中的哪些記錄并且響應刪除按鈕的事件,所以只保留上面的php代碼,而同時,在js目錄下新建立一個js/datagrid.js文件,還要修改上文中的index 方法如下:

  1. function index(){  
  2.   $this->load->helper('form');  
  3.   $this->load->library('session');  
  4.   $this->load->view('users');  
  5.  } 

也可以修改相關的CSS樣式,例如:

  1. .dg_form table{  
  2.   border:1px solid silver;  
  3.   }  
  4.   .dg_form th{  
  5.   background-color:gray;  
  6.   font-family:"Courier New", Courier, mono;  
  7.   font-size:12px;  
  8.   }  
  9.   .dg_form td{  
  10.   background-color:gainsboro;  
  11.   font-size:12px;  
  12.   }  
  13.   .dg_form input[type=submit]{  
  14.   margin-top:2px;  
  15.  }  

在datagrid.js中,增加如下的函數方法:

  1. $(function() {  
  2.   $('.dg_form :submit').click(function(e){  
  3.   e.preventDefault();  
  4.   var $form = $(this).parents('form');  
  5.   var action_name = $(this).attr('class').replace("dg_action_","");  
  6.   var action_control = $('');  
  7.   $form.append(action_control);  
  8.   var post_data = $form.serialize();  
  9.   action_control.remove();  
  10.   var script = $form.attr('action')+'/ajax';  
  11.   $.post(script, post_data, function(resp){  
  12.   if(resp.error){  
  13.   alert(resp.error);  
  14.   } else {  
  15.   switch(action_name){  
  16.   case 'delete' :  
  17.   //將已刪除的數據在數據表格中移走  
  18.   $form.find('.dg_check_item:checked').parents('tr').remove();  
  19.   break;  
  20.   case 'anotherAction' :  
  21.   ..  
  22.   break;  
  23.   }  
  24.   }  
  25.   }, 'json')  
  26.   })  
  27.   })  

在上面的代碼中,首先通過 var $form = $(this).parents('form');獲得了表單的名,然后通過

  1. var action_name = $(this).attr('class').replace("dg_action_","") 

獲得action的名稱,而

  1. var action_control = $('');  
  2.   $form.append(action_control);  

則是動態生成隱藏域action_control,通過$form.append(action_control)添加到表單中去。

接下來,我們將客戶端的數據通過 $.post(script, post_data, function(resp)發送到服務端,其中script變量定義了ajax發送的路徑,

Post_data則為通過$form.serialize()序列化后的表單數據。然后,在其回調函數的返回值中,判斷resp是否包含了錯誤信息,如果包含了錯誤信息則通過alert顯示,然后再在數據表格中,使用

  1. $form.find('.dg_check_item:checked').parents('tr').remove(); 

一句代碼,將服務端已刪除的數據行在數據表格中移走。

最后,我們再添加如下代碼

  1. $('.dg_check_toggler').click(function(){  
  2.   var checkboxes = $(this).parents('table').find('.dg_check_item');  
  3.   if($(this).is(':checked')){  
  4.   checkboxes.attr('checked','true');  
  5.   } else {  
  6.   checkboxes.removeAttr('checked');  
  7.   }  
  8.   })  

這段代碼的意思是,當用戶選擇了表格中的“全選”按鈕時,將會尋找表格中所有每一行記錄前的checkbox(存放到變量checkboxes中),然后如果用戶在全選的checkbox框中勾選了的話,則通過jQuery設置所有記錄前的checkbox的attr屬性為true,即實現了全選的功能,反之則為取消全選。

小結

本文使用了php中的著名開發框架CI以及jQuery,指導讀者如何構建了一個通用的數據表格幫助類,并且擁有ajax的功能(借助jQuery實現)。讀者從中可以學到不少CI框架以及jQuery的技巧和知識。

原文:http://tech.it168.com/a2011/1027/1264/000001264981_all.shtml

【編輯推薦】

  1. 使用jQuery設計數據表格之設計表格基類
  2. 從零開始學習jQuery之萬能的選擇器
  3. 7月20款最新且極具創意的jQuery插件(附下載)
  4. 從零開始學習jQuery之Ajax快餐
  5. 一些應該熟記于心的jQuery函數和技巧
責任編輯:陳貽新 來源: it168
相關推薦

2011-10-25 09:52:56

jQuery

2017-08-10 13:43:00

大數據數據表格優化設計

2009-05-20 14:49:16

ibmdwAjaxWeb開發

2012-02-08 17:01:36

2011-05-19 11:01:14

ERWin數據庫設計

2024-07-26 10:50:51

SpringScrew數據庫

2011-01-24 13:20:49

2011-01-26 08:59:11

jQueryjavascriptweb

2009-06-26 13:46:13

Struts

2009-08-07 09:57:20

Ajax分頁功能

2009-08-04 11:22:07

ASP.NET數據導入

2017-10-11 18:17:06

大數據數據可視化前后端

2023-01-13 18:32:40

計數系統設計

2011-05-18 13:43:52

jQueryAjaxPHP

2011-05-18 13:28:46

jQueryPHPAJAX

2011-03-02 11:23:48

2011-04-14 10:08:04

AJAXPHPJQuery

2009-09-09 11:24:13

Linq使用數據表

2021-04-26 10:47:54

AJAXDjango前端

2013-12-02 14:40:03

jQueryAjax
點贊
收藏

51CTO技術棧公眾號

亚洲激情自拍视频| 国产一区二区在线看| 亚洲剧情一区二区| 色国产在线视频| 日本中文字幕中出在线| 91免费看`日韩一区二区| 91精品国产综合久久香蕉922| 青娱乐国产在线| 国产99久久| 日韩一区二区在线看| 日韩a在线播放| 成人黄视频在线观看| www.激情成人| 成人性生交大片免费看小说| 91浏览器在线观看| 久久在线播放| 亚洲免费伊人电影在线观看av| 午夜精品久久久久久久99热影院| 高潮在线视频| 亚洲欧美二区三区| 日本一区二区三区四区在线观看| 亚洲第一页视频| 麻豆精品一区二区三区| 欧美在线视频a| 久久中文字幕无码| 日韩片欧美片| 亚洲偷熟乱区亚洲香蕉av| 26uuu国产| 青青久久精品| 在线视频国产一区| 亚洲中文字幕无码专区| 主播国产精品| 亚洲欧洲美洲综合色网| 日产中文字幕在线精品一区| 亚洲天堂网站在线| 成人黄色片视频| 麻豆传媒视频在线观看| 久久精品亚洲国产奇米99 | 丁香久久综合| 欧美日韩国产精品一区二区不卡中文 | 久久99亚洲精品| 国产中文av在线| 欧美好骚综合网| 色哟哟入口国产精品| 中文天堂资源在线| 欧美精品系列| 中文综合在线观看| 国产黄色录像视频| 久久在线视频免费观看| 深夜福利一区二区| 青青青视频在线免费观看| 欧美日韩精品一区二区视频| 亚洲欧洲中文天堂| 成人午夜剧场视频网站| 天堂成人娱乐在线视频免费播放网站 | 十八禁视频网站在线观看| 日韩在线伦理| 欧美性xxxx在线播放| 能在线观看的av| 深夜福利视频一区二区| 欧美日韩久久久久| 成熟老妇女视频| 亚洲人成午夜免电影费观看| 欧美日韩中文字幕在线视频| 久久久精品在线视频| 在线一区av| 欧美专区日韩专区| 国产色视频在线播放| 日本一区二区中文字幕| 欧美电影一区二区| 在线播放av网址| 欧美日韩看看2015永久免费 | 欧美色网一区二区| 天天干天天色天天干| 日本成人手机在线| 日韩电影免费观看在线观看| 女人又爽又黄免费女仆| 久久精品高清| 色综合久综合久久综合久鬼88 | 日韩视频免费观看高清完整版| 亚洲午夜精品在线观看| 日韩美脚连裤袜丝袜在线| 亚洲女人初尝黑人巨大| 肉色超薄丝袜脚交69xx图片| 欧美99久久| 91av网站在线播放| 日韩精品在线一区二区三区| 国产一区二区三区综合| 国产精品嫩草在线观看| 国产视频三级在线观看播放| 亚洲欧美偷拍卡通变态| 97视频在线免费| 成人在线观看免费播放| 日韩一级黄色大片| 好吊色视频一区二区三区| 亚洲成a人片77777在线播放| xxxxxxxxx欧美| www.中文字幕在线观看| 麻豆精品一区二区| 精品一区二区三区日本| 三区四区电影在线观看| 岛国精品视频在线播放| 色综合五月婷婷| 亚洲品质自拍| 色综合久久88| 在线免费看av片| www.欧美色图| 无码人妻精品一区二区三区99v| 九色porny视频在线观看| 欧美卡1卡2卡| 一级性生活大片| 好吊一区二区三区| 国产精品视频99| 四虎影视2018在线播放alocalhost| 中文字幕一区二区不卡| 黄色a级片免费| **爰片久久毛片| 日韩中文第一页| 伊人中文字幕在线观看| 不卡高清视频专区| 国产一区一区三区| 在线成人视屏| 日韩成人在线播放| 强乱中文字幕av一区乱码| 日本视频在线一区| 欧美乱偷一区二区三区在线| 91老司机福利在线| 欧美不卡视频一区| 老妇女50岁三级| 精品一区二区在线免费观看| 欧美亚洲精品日韩| 在线观看爽视频| 欧美精品一区二区三区高清aⅴ| 97成人资源站| 国产资源在线一区| 亚洲蜜桃av| 日日av拍夜夜添久久免费| 日韩av在线电影网| 日韩少妇裸体做爰视频| 成人黄色一级视频| 亚洲国产精品无码av| 大香伊人久久精品一区二区| 色综合久综合久久综合久鬼88| 99热这里是精品| 亚洲欧洲精品一区二区三区 | 久久久久久久久97黄色工厂| 青青草精品视频在线| gogo久久日韩裸体艺术| 欧美激情性做爰免费视频| www.久久久久久久久久| 一区二区视频在线看| 国产老头和老头xxxx×| 欧美国产91| 成人免费视频观看视频| 日本性爱视频在线观看| 精品日韩在线一区| xxxx 国产| 99在线热播精品免费| 欧美综合在线播放| 亚洲人成伊人成综合图片| 热99精品只有里视频精品| 精品亚洲综合| 欧美性猛交xxxx黑人交| 精品视频第一页| 国产一区二区在线电影| 成人免费视频91| 婷婷精品在线| 国产精品色婷婷视频| 黄色一级片在线观看| 欧美成人官网二区| 国产网站在线看| 久久久久久麻豆| 亚洲这里只有精品| 欧美体内she精视频在线观看| 国产一区二区三区四区五区在线| 小草在线视频免费播放| 一区二区三区在线播放欧美| 国产又色又爽又黄又免费| 亚洲女人****多毛耸耸8| 国产原创剧情av| 麻豆精品网站| 老汉色影院首页| 欧洲在线一区| 成人妇女免费播放久久久| 久久不射影院| 亚洲香蕉成人av网站在线观看| 91精品国产乱码久久| 亚洲图片一区二区| 亚洲成人黄色av| 国产精品18久久久久久久久 | 国产乱子轮精品视频| 久久亚洲中文字幕无码| 日韩不卡一区| 国产精品永久入口久久久| 日韩另类视频| 欧美巨大黑人极品精男| 黄色免费在线播放| 日韩一区二区电影| 懂色av中文字幕| 亚洲影视在线播放| 欧美成人久久久免费播放| 成人精品免费看| 热久久久久久久久| 国产精品亚洲综合久久| 国产免费色视频| 一区二区小说| 岛国一区二区三区高清视频| 日韩一级二级| 国产91|九色| 3d玉蒲团在线观看| 色偷偷综合社区| 国产在线资源| 日韩电影中文字幕一区| 国产黄色小视频在线观看| 欧美综合欧美视频| 青青青国产在线| 亚洲成人av在线电影| 国产三级国产精品国产国在线观看| 久久久亚洲午夜电影| 精品视频站长推荐| 处破女av一区二区| 在线免费黄色网| 日本不卡高清视频| 免费av网址在线| 国产精品婷婷| 欧美极品欧美精品欧美| 在线 亚洲欧美在线综合一区| 精品国产无码在线| 成人看的羞羞网站| 日本成人三级电影网站| 丝袜久久网站| 国产精品一区二区a| 一区二区免费| 92看片淫黄大片欧美看国产片| 欧洲亚洲精品久久久久| 国产精品视频在线观看| a屁视频一区二区三区四区| 欧美自拍视频在线| 69久成人做爰电影| 日韩美女视频中文字幕| 中文字幕乱码中文乱码51精品| 97国产精品视频人人做人人爱| 91www在线| 久久久女女女女999久久| 色图在线观看| 欧美精品videos| 黄色在线看片| 91成人性视频| 一个人www视频在线免费观看| 91精品国产成人| 日本免费久久| 国产精品精品久久久久久| 日韩色淫视频| 成人激情免费在线| 久久视频免费| 成人在线观看网址| 久久久久久久久久久久久久久久久久久久| 国产精品国产三级欧美二区| 噜噜噜天天躁狠狠躁夜夜精品 | 欧美残忍xxxx极端| 日本成人性视频| 午夜精品网站| 精品国产一区三区| 视频一区免费在线观看| 日本肉体xxxx裸体xxx免费| 久久激情五月激情| 粗大的内捧猛烈进出视频| av一区二区三区四区| av在线网站观看| 成人免费一区二区三区视频 | 欧美日韩精品久久久| 国产免费黄色大片| 亚洲精品在线免费播放| 性xxxxbbbb| 日韩亚洲欧美中文高清在线| 91蜜桃在线视频| 91chinesevideo永久地址| 99re久久| 成人免费视频观看视频| 国产精品一国产精品| 欧美日韩视频免费在线观看| 亚洲视频狠狠| 99热手机在线| 国产不卡在线播放| 欧美熟妇一区二区| 亚洲日本一区二区三区| 日韩欧美一区二区一幕| 欧美无乱码久久久免费午夜一区| www.国产.com| 亚洲天堂开心观看| 在线观看wwwxxxx| 国产成人jvid在线播放| 一区二区精彩视频| 亚洲成人一区二区三区| 亚洲一级一区| 污版视频在线观看| 99热精品国产| 久久人妻无码aⅴ毛片a片app| 天天影视涩香欲综合网| 91精东传媒理伦片在线观看| 日韩毛片中文字幕| 污污的网站在线免费观看| 国产999在线观看| 77成人影视| 中文字幕久久一区| 欧美专区18| 无码人妻一区二区三区在线| 国产精品美女久久久久高潮| 日本特黄特色aaa大片免费| 欧美精品日韩精品| 毛片免费在线观看| 国外成人免费在线播放| 国产亚洲字幕| 一区二区在线高清视频| 玖玖玖国产精品| 波多野结衣视频播放| 亚洲女人****多毛耸耸8| 欧美国产一级片| 亚洲精品网站在线播放gif| 日本高清在线观看视频| 国产精品专区h在线观看| 久久99性xxx老妇胖精品| 久草免费福利在线| 国产剧情一区二区三区| 欧美一级特黄高清视频| 欧美一a一片一级一片| 蜜桃视频在线免费| 77777亚洲午夜久久多人| 国产suv精品一区二区四区视频| 亚洲小说欧美另类激情| 久久国产精品第一页| www..com.cn蕾丝视频在线观看免费版| 精品久久久视频| 少妇av在线播放| 久久久久久久久电影| 91九色鹿精品国产综合久久香蕉| 三年中文高清在线观看第6集| 美美哒免费高清在线观看视频一区二区 | 欧洲激情视频| 乱子伦视频在线看| 久久久久国产成人精品亚洲午夜| 精品人妻一区二区三区免费看 | 日本少妇高潮喷水xxxxxxx| 大荫蒂欧美视频另类xxxx| 午夜影院免费体验区| 欧美专区中文字幕| 精品99在线| 狠狠躁狠狠躁视频专区| 中文字幕不卡三区| 伊人网站在线观看| 日韩一区二区福利| 婷婷成人av| 玖玖精品在线视频| 福利一区二区在线观看| 日韩av一二三区| 亚洲欧美中文日韩v在线观看| 日韩大尺度黄色| 亚洲高清视频一区二区| 精品一区二区三区在线观看| 欧美精品久久久久久久久46p| 日韩欧美一二三四区| 1024在线看片你懂得| 免费成人看片网址| 日本中文字幕一区二区有限公司| 少妇愉情理伦三级| 91精品免费观看| 国产精品国精产品一二| 免费观看成人高| 另类专区欧美蜜桃臀第一页| 国产1区2区3区4区| 亚洲国产成人精品久久| 伊人久久综合一区二区| 神马一区二区影院| 国产麻豆视频精品| 久久久久久久黄色片| 在线视频欧美日韩| 一区二区三区在线免费看| 免费无码毛片一区二三区| 久久精品一区二区三区av| 一二三四区在线| 久久久久久综合网天天| 米奇777超碰欧美日韩亚洲| 91精品999| 亚洲成人www| 欧美性猛交xxx乱大交3蜜桃| 国产精品视频免费观看| 日韩电影在线免费看| 久久精品视频免费在线观看| 亚洲美女福利视频网站| 95精品视频| 国产精品欧美激情在线观看 | 欧美三日本三级少妇99| 在线中文字幕日韩| 成人看片爽爽爽| 奇米影音第四色| 五月婷婷欧美视频| 日本三级在线视频| 久久久一本精品99久久精品66| 久久爱另类一区二区小说| www.国产高清|