亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

基于PHP和Mysql相結合使用jqGrid讀取數據并顯示

2019-11-20 11:06:15
字體:
來源:轉載
供稿:網友

jqGrid可以動態讀取和加載外部數據,本文將結合PHP和Mysql給大家講解如何使用jqGrid讀取數據并顯示,以及可以通過輸入關鍵字查詢數據的ajax交互過程。

下面給大家展示效果圖,喜歡的朋友可以閱讀全文哦。

jqGrid本身帶有search和edit表格模塊,但是這些模塊會使得整個插件體積顯得有點龐大,而且筆者認為jqGrid的搜索查詢和編輯/添加功能不好用,所以筆者放棄jqGrid自有的search和edit表格模塊,借助jquery利器來完成相關功能,符合項目的實際應用。

XHTML

<div id="opt">  <div id="query">  <label>編號:</label><input type="text" class="input" id="sn" />  <label>名稱:</label><input type="text" class="input" id="title" />  <input type="submit" class="btn" id="find_btn" value="查 詢" />  </div>  <input type="button" class="btn" id="add_btn" value="新 增" />  <input type="button" class="btn" id="del_btn" value="刪 除" /> </div> <table id="list"></table> <div id="pager"></div> 

我們在建立一個可供查詢編號和名稱的兩個輸入框,以及“新增”和“刪除”按鈕,新增和刪除功能在接下來的文章中會專門講解。此外xhtml中還有一個放置表格的#list(jqGrid生成表格)以及分頁條#pager。

Javascript

首先調用jqGrid,我們以本站jqGrid:強大的表格插件的應用一文中的數據為例,調用jqGrid,生成表格,請看代碼和注釋。

$("#list").jqGrid({  url:'do.php?action=list', //請求數據的url地址  datatype: "json", //請求的數據類型  colNames:['編號','名稱','主屏尺寸','操作系統','電池容量', '價格(¥)','操作'], //數據列名稱(數組)  colModel:[ //數據列各參數信息設置   {name:'sn',index:'sn', editable:true, width:80,align:'center', title:false},   {name:'title',index:'title', width:180, title:false},   {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', //表格數據關聯的分頁條,html元素  autowidth: true, //自動匹配寬度  height:275, //設置高度  gridview:true, //加速顯示  viewrecords: true, //顯示總記錄數  multiselect: true, //可多選,出現多選框  multiselectWidth: 25, //設置多選列寬度  sortable:true, //可以排序  sortname: 'id', //排序字段名  sortorder: "desc", //排序方式:倒序,本例中設置默認按id倒序排序  loadComplete:function(data){ //完成服務器請求后,回調函數  if(data.records==0){ //如果沒有記錄返回,追加提示信息,刪除按鈕不可用   $("p").appendTo($("#list")).addClass("nodata").html('找不到相關數據!');   $("#del_btn").attr("disabled",true);  }else{ //否則,刪除提示,刪除按鈕可用   $("p.nodata").remove();   $("#del_btn").removeAttr("disabled");  }  } }); 

關于jqGrid相關選項設置請參照:jqGrid中文說明文檔――選項設置。

此外,當我們點擊“查詢”按鈕的時候,向后臺php程序發送查詢關鍵字請求,jqGrid根據服務端返回的結果進行響應,請看代碼。

$(function(){  $("#find_btn").click(function(){  var title = escape($("#title").val());  var sn = escape($("#sn").val());  $("#list").jqGrid('setGridParam',{   url:"do.php?action=list",   postData:{'title':title,'sn':sn}, //發送數據   page:1  }).trigger("reloadGrid"); //重新載入  }); }); 

PHP

在上兩段JS代碼代碼中,可以看到讀取列表和查詢業務請求的后臺url地址都是do.php?action=list,后臺php代碼負責根據條件查詢mysql數據表中的數據,并將數據以JSON格式返回給前端jqGrid,請看php代碼:

include_once ("connect.php"); $action = $_GET['action']; switch ($action) {  case 'list' : //列表  $page = $_GET['page']; //獲取請求的頁數  $limit = $_GET['rows']; //獲取每頁顯示記錄數  $sidx = $_GET['sidx']; //獲取默認排序字段  $sord = $_GET['sord']; //獲取排序方式  if (!$sidx)   $sidx = 1;   $where = '';  $title = uniDecode($_GET['title'],'utf-8'); //獲取查詢關鍵字:名稱  if(!empty($title))   $where .= " and title like '%".$title."%'";  $sn = uniDecode($_GET['sn'],'utf-8'); //獲取查詢關鍵字:編號  if(!empty($sn))   $where .= " and sn='$sn'";  //執行SQL  $result = mysql_query("SELECT COUNT(*) AS count FROM products where deleted=0".$where);  $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;  if ($start < 0 ) $start = 0;  //執行分頁SQL  $SQL = "SELECT * FROM products WHERE deleted=0".$where." 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); //輸出JSON數據  break;  case '' :  echo 'Bad request.';  break; } 

值得一提的是,我們在進行中文查詢時,即輸入中文關鍵字進行查詢時,需要用js進行escape編碼,然后php接收中文關鍵字時相應的進行解碼,否則會出現無法識別中文字符串的現象,本例中采用uniDecode函數進行解碼,代碼一并奉上:

/處理接收jqGrid提交查詢的中文字符串 function uniDecode($str, $charcode) {  $text = preg_replace_callback("/%u[0-9A-Za-z]{4}/", toUtf8, $str);  return mb_convert_encoding($text, $charcode, 'utf-8'); } function toUtf8($ar) {  foreach ($ar as $val) {  $val = intval(substr($val, 2), 16);  if ($val < 0x7F) { // 0000-007F   $c .= chr($val);  }  elseif ($val < 0x800) { // 0080-0800   $c .= chr(0xC0 | ($val / 64));   $c .= chr(0x80 | ($val % 64));  } else { // 0800-FFFF   $c .= chr(0xE0 | (($val / 64) / 64));   $c .= chr(0x80 | (($val / 64) % 64));   $c .= chr(0x80 | ($val % 64));  }  }  return $c; } 

以上所述就是本文給大家介紹的基于PHP和Mysql相結合使用jqGrid讀取數據并顯示的全部內容,關于jqgrid表格相關應用會持續給大家介紹,敬請關注。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人乱色短篇合集| 在线视频精品一| 国产精品丝袜久久久久久不卡| 57pao国产成人免费| 欧美成人四级hd版| 国产免费一区二区三区香蕉精| 国内精品久久影院| 久久6免费高清热精品| 欧美亚洲一级片| 久久精品国产欧美亚洲人人爽| 亚洲无限乱码一二三四麻| 欧美日韩一区二区在线播放| 亚洲免费av片| 亚洲人成电影在线| 91禁外国网站| 欧美肥臀大乳一区二区免费视频| 奇米成人av国产一区二区三区| 国产美女精彩久久| 欧美成人免费观看| 国产成人短视频| 亚洲午夜av电影| 日韩欧美综合在线视频| 91色琪琪电影亚洲精品久久| 韩国三级电影久久久久久| 91香蕉电影院| 成人激情电影一区二区| 欧美日韩一区二区免费在线观看| 久久久久久国产精品三级玉女聊斋| 国产精品老女人精品视频| 少妇高潮 亚洲精品| 亚洲国产精品小视频| 国产一区二区三区欧美| 日本老师69xxx| 国产精品99久久久久久人| 国产精品成人aaaaa网站| 亚洲综合色激情五月| 91人人爽人人爽人人精88v| 国模视频一区二区三区| 国产在线日韩在线| 国产精品久久久久久搜索| 国产婷婷97碰碰久久人人蜜臀| 在线激情影院一区| 久久视频在线看| 国产在线一区二区三区| 国内精品视频一区| 亚洲的天堂在线中文字幕| 欧美亚洲成人精品| 亚洲欧美国产一本综合首页| 日产精品久久久一区二区福利| 亚洲第一天堂无码专区| 日韩视频一区在线| 国产精品视频一区二区高潮| 国产精品一区久久| 亚洲电影第1页| 成人精品久久一区二区三区| 成人疯狂猛交xxx| 青草青草久热精品视频在线观看| 国产精品成人播放| 欧美日韩福利视频| 亚洲视频一区二区三区| 亚洲色图校园春色| 亚洲国产精品中文| 81精品国产乱码久久久久久| 日韩女优人人人人射在线视频| 亚洲精品电影网站| 亚洲美女视频网| 日本免费久久高清视频| 亚洲日韩中文字幕| 亚洲色无码播放| 亚洲石原莉奈一区二区在线观看| 日韩精品在线看| 国产精品视频一区二区高潮| 日本欧美中文字幕| 性色av一区二区咪爱| 亚洲精品国产综合久久| 欧美成人精品在线| 精品亚洲男同gayvideo网站| 亚洲最大的av网站| 久久精品夜夜夜夜夜久久| 亚洲伊人久久综合| 中文字幕亚洲一区二区三区| 97精品一区二区三区| 欧美午夜女人视频在线| 亚洲欧美变态国产另类| 538国产精品一区二区免费视频| 久久久久久国产三级电影| 高清欧美一区二区三区| 中日韩美女免费视频网址在线观看| 精品国产一区二区在线| 欧洲成人免费视频| 亚洲第一区在线观看| 57pao精品| 亚洲电影免费在线观看| 亚洲成人中文字幕| 精品国产欧美成人夜夜嗨| 亚洲激情第一页| 亚洲视频在线观看免费| 亚洲xxxxx电影| 热久久这里只有| 国产美女精品视频| 亚洲成人亚洲激情| 国产一区二区三区高清在线观看| 日韩中文字幕欧美| 亚洲欧洲在线视频| 亚洲精选中文字幕| 日韩一区二区三区在线播放| 国产一区二区三区免费视频| 日韩在线视频一区| 在线观看日韩av| 日韩激情视频在线播放| 国产精品成人va在线观看| 国产精品丝袜高跟| 日韩女优人人人人射在线视频| 最近更新的2019中文字幕| 成人性生交大片免费看小说| 亚洲欧美一区二区三区久久| 亚洲免费小视频| 亚洲一区国产精品| 亚洲综合大片69999| 亚洲乱码av中文一区二区| 亚洲欧美国产高清va在线播| 亚洲激情视频在线播放| 国产精品丝袜久久久久久不卡| 青青草一区二区| 5566成人精品视频免费| 精品国产一区二区三区久久久| 亚洲欧洲午夜一线一品| 欧美性猛交xxxx乱大交3| 亚洲一二在线观看| 久久91精品国产91久久久| 日韩精品在线免费观看视频| 国产亚洲精品一区二区| 亚洲第一区第二区| 丝袜一区二区三区| 96精品视频在线| 91亚洲精品一区二区| 中日韩美女免费视频网站在线观看| 欧美激情在线观看视频| 精品国产91久久久久久| 亚洲一区二区三区成人在线视频精品| 91嫩草在线视频| 国产精品第一第二| 在线观看欧美视频| 国产精品96久久久久久又黄又硬| 久久午夜a级毛片| 国产精品一区久久| 日韩免费不卡av| 九九精品视频在线观看| 欧美另类第一页| 欧美电影院免费观看| 97久久超碰福利国产精品…| 大伊人狠狠躁夜夜躁av一区| 久久久久中文字幕| 国产精品久久电影观看| 亚洲第一区第一页| 亚洲人成伊人成综合网久久久| 亚洲综合av影视| 久热国产精品视频| 国产裸体写真av一区二区| 欧美高清视频在线观看| 国产精品久久久久久久久男| 亚洲色图综合网| 亚洲欧美第一页| 欧美亚洲第一区|