jqGrid est un puissant plug-in de table basé sur jQuery. En utilisant jqGrid, vous pouvez facilement implémenter une communication asynchrone ajax entre la page frontale et les données d'arrière-plan. jqGrid s'exécute très rapidement et peut être bien utilisé dans certains systèmes de gestion en arrière-plan. pour gérer un grand nombre de situations de données.
Fonctionnalités de jqGrid :
Basé sur le thème jquery UI, les développeurs peuvent modifier différents thèmes en fonction des exigences du client.
Compatible avec tous les navigateurs Web populaires actuels.
La pagination Ajax peut contrôler le nombre d'enregistrements affichés sur chaque page.
Prend en charge les sources de données sous forme de XML, JSON et de tableaux.
Fournit une configuration d’options riche et une interface d’événement de méthode.
Prend en charge le tri des tableaux, le déplacement des colonnes et le masquage des colonnes.
Prend en charge le chargement des données par défilement.
Prend en charge l'édition et la sauvegarde en temps réel du contenu des données.
Prend en charge les sous-tables et les tables arborescentes.
Prend en charge plusieurs langues.
Le plus important c’est que c’est gratuit pour le moment.
Comment utiliser jqGrid
1. Tout d'abord, vous devez télécharger la dernière version du package depuis le site officiel de jqGrid. Vous pouvez la télécharger ici : http://www.trirand.com/blog/
2. Créez deux nouveaux dossiers css et js dans le répertoire WEB, placez les fichiers css et js pertinents, créez un fichier de page index.html, ouvrez-le avec votre éditeur de texte préféré et saisissez le code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/ xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Grid</title> <link rel="stylesheet" type="text/css" href="css/ui-lightness/jquery-ui-1.8.2.custom.css" /> <link rel="stylesheet" type="text/css" href="css/ui.jqgrid.css" /> <script src="js/jquery.js" type="text/javascript"></script> <script src="js/i18n/grid.locale-cn.js" type="text/javascript"></script> <script src="js/jquery.jqGrid.min.js" type="text/javascript"></script> </head> <body> ... </body> </html>
<table id="list"></table> <div id="pager"></div>
4. Appelez le plug-in jqGrid et ajoutez le code js suivant à la page
$("#list").jqGrid({ caption: '手机产品列表', url:'server.php', datatype: "json", colNames:['编号','名称','主屏尺寸','操作系统','电池容量', '价格(¥)','操作'], colModel:[ {name:'sn',index:'sn', width:80,align:'center'}, {name:'title',index:'title', width:180}, {name:'size',index:'size', width:120}, {name:'os',index:'os', width:120}, {name:'charge',index:'charge', width:100,align:'center'}, {name:'price',index:'price', width:80,align:'center'}, {name:'opt',index:'opt', width:80, sortable:false, align:'center'} ], rowNum:10, rowList:[10,20,30], pager: '#pager', sortname: 'id', autowidth: true, height:280, viewrecords: true, multiselect: true, multiselectWidth: 25, sortable:true, sortorder: "asc" });
5. Charger les données.
Nous utilisons php pour lire les données MySQL et renvoyer les données au format json à jqGrid pour afficher les données. Nous préparons un tableau de données pour enregistrer les informations sur les produits de téléphonie mobile. La structure est la suivante :
CREATE TABLE IF NOT EXISTS `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `sn` varchar(10) NOT NULL, `title` varchar(60) NOT NULL, `size` varchar(30) NOT NULL, `os` varchar(50) NOT NULL, `charge` varchar(50) DEFAULT NULL, `screen` varchar(50) DEFAULT NULL, `design` varchar(50) DEFAULT NULL, `price` int(10) NOT NULL, `addtime` datetime NOT NULL PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
//连接数据库 include_once ('connect.php'); $page = $_GET['page']; $limit = $_GET['rows']; $sidx = $_GET['sidx']; $sord = $_GET['sord']; if (!$sidx) $sidx = 1; $result = mysql_query("SELECT COUNT(*) AS count FROM products where deleted=0"); $row = mysql_fetch_array($result, MYSQL_ASSOC); $count = $row['count']; if ($count > 0) { $total_pages = ceil($count / $limit); } else { $total_pages = 0; } if ($page > $total_pages) $page = $total_pages; $start = $limit * $page - $limit; $SQL = "SELECT * FROM products WHERE deleted=0 ORDER BY $sidx $sord LIMIT $start , $limit"; $result = mysql_query($SQL) or die("Couldn t execute query." . mysql_error()); $responce->page = $page; $responce->total = $total_pages; $responce->records = $count; $i = 0; while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $responce->rows[$i]['id'] = $row[id]; $opt = "<a href='edit.php'>修改</a>"; $responce->rows[$i]['cell'] = array ( $row[sn], $row[title], $row[size], $row[os], $row[charge], $row[price], $opt ); $i++; } echo json_encode($responce);