最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jqGrid表格應(yīng)用之新增與刪除數(shù)據(jù)附源碼下載

 更新時間:2015年12月02日 10:44:11   投稿:mrr  
jqGrid可以結(jié)合fancybox等插件完成超酷的彈出層效果,通過與php后臺交互,可以輕松完成數(shù)據(jù)的添加與詳情查看,而這個過程完全是一個ajax異步通信過程,是一個非常友好的富客戶端應(yīng)用,本文給大家介紹jqGrid表格應(yīng)用之新增與刪除數(shù)據(jù),需要的朋友參考下

jqGrid可以結(jié)合fancybox等插件完成超酷的彈出層效果,通過與php后臺交互,可以輕松完成數(shù)據(jù)的添加與詳情查看,而這個過程完全是一個ajax異步通信過程,是一個非常友好的富客戶端應(yīng)用。

下面給大家展示了效果圖,喜歡的朋友可以直接下載源碼哦。


效果展示    源碼下載

在上一篇文章中,我們提到過jqGrid自身有強(qiáng)大的單元格操作模塊,但是這些模塊操作起來不太適合用戶的習(xí)慣,在本文中,我們使用fancybox,以及表單插件來完成jqGrid數(shù)據(jù)的添加以及刪除操作。

XHTML

首先需要在head中引入相關(guān)js和css文件。

<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" /> 
<link rel="stylesheet" type="text/css" href="css/fancybox.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> 
<script src="js/jquery.fancybox.js" type="text/javascript"></script> 
<script src="js/jquery.form.js" type="text/javascript"></script> 
<script src="js/jquery.message.js" type="text/javascript"></script> 

其中,fancybox是用來顯示彈出層效果的插件,form和message是用來處理表單和提示信息的插件,然后在body里加入以下代碼:

<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> 

我們在頁面中放置一個“新增”和“刪除”按鈕,以及表格容器#list(jqGrid生成表格)以及分頁條#pager。關(guān)于查詢功能,我們在上一篇文章有講解。

新增數(shù)據(jù)

1、讀取數(shù)據(jù):調(diào)用jqGrid,生成表格,此段代碼在本站上一篇文章中有詳細(xì)講解,本文不再重復(fù),您可以查看:jqGrid表格應(yīng)用——讀取與查詢數(shù)據(jù)

2、調(diào)用表單:當(dāng)點(diǎn)擊“新增”按鈕時,調(diào)用fancybox插件,彈出一個新增產(chǎn)品的表單層。

$(function(){ 
 $("#add_btn").click(function(){ 
 $.fancybox({ 
 'type':'ajax', 
 'href':'addGrid.html' 
 }); 
 }); 

可以看出,調(diào)用fancybox時,以ajax的方式加載了一個頁面:addGrid.html,這個頁面用來放置要提交的表單。關(guān)于fancybox插件的應(yīng)用,您可以查看本站文章了解:Fancybox豐富的彈出層效果

3、提交表單:我們需要在addGrid.html頁面放置一表單。

<form id="add_form" action="do.php?action=add" method="post"> 
... 
</form> 

當(dāng)點(diǎn)擊“提交”按鈕時,對表單進(jìn)行驗(yàn)證,這里我們使用了jquery.form.js完成表單的驗(yàn)證和提交,我們在addGrid.html頁面加入以下代碼:

$(function(){ 
 $('#add_form').ajaxForm({ 
 beforeSubmit: validate, //驗(yàn)證表單 
 success: function(msg){ 
 if(msg==1){ //如果成功提交 
 $.fancybox.close(); //關(guān)閉fancybox彈出層 
 $().message("成功添加"); //提示信息 
 $("#list").trigger("reloadGrid"); //重新載入jqGrid數(shù)據(jù) 
 }else{ 
 alert(msg); 
 } 
 } 
 }); 
}); 
function validate(formData, jqForm, options) { 
 for (var i=0; i < formData.length; i++) { 
 if (!formData[i].value) { 
 $().message("請輸入完整相關(guān)信息"); 
 return false; 
 } 
 } 
 $().message("正在提交..."); 
} 

4、PHP處理數(shù)據(jù):表單數(shù)據(jù)提交給后臺do.php后,程序需要過濾表單提交的數(shù)據(jù),然后將數(shù)據(jù)插入到數(shù)據(jù)表中,并將執(zhí)行結(jié)果返回給前端頁面。

include_once ("connect.php"); //連接數(shù)據(jù)庫 
$action = $_GET['action']; 
switch ($action) { 
 case 'list' : //列表 
 ... //讀取數(shù)據(jù)列表,代碼省略,請參照上一篇文章中的代碼 
 break; 
 case 'add' : //新增 
 //過濾輸入的字符串 
 $pro_title = htmlspecialchars(stripslashes(trim($_POST['pro_title']))); 
 $pro_sn = htmlspecialchars(stripslashes(trim($_POST['pro_sn']))); 
 $size = htmlspecialchars(stripslashes(trim($_POST['size']))); 
 $os = htmlspecialchars(stripslashes(trim($_POST['os']))); 
 $charge = htmlspecialchars(stripslashes(trim($_POST['charge']))); 
 $price = htmlspecialchars(stripslashes(trim($_POST['price']))); 
 if (mb_strlen($pro_title) < 1) 
 die("產(chǎn)品名稱不能為空"); 
 $addtime = date('Y-m-d H:i:s'); 
 //插入數(shù)據(jù) 
 $query = mysql_query("insert into products(sn,title,size,os,charge,price,addtime)values 
 ('$pro_sn','$pro_title','$size','$os','$charge','$price','$addtime')"); 
 if (mysql_affected_rows($link) != 1) { 
 die("操作失敗"); 
 } else { 
 echo '1'; 
 } 
 
 break; 
 case '' : 
 echo 'Bad request.'; 
 break; 
} 

刪除數(shù)據(jù)

數(shù)據(jù)的刪除也是通過前端和后臺的異步交互來完成的,本例中的刪除功能可以執(zhí)行批量刪除,js獲取jqGrid選中的要刪除的行,然后將選中的數(shù)據(jù)對應(yīng)的id提交給php處理,請看代碼:

$(function(){ 
 $("#del_btn").click(function(){ 
 var sels = $("#list").jqGrid('getGridParam','selarrrow'); 
 if(sels==""){ 
 $().message("請選擇要刪除的項(xiàng)!"); 
 }else{ 
 if(confirm("您是否確認(rèn)刪除?")){ 
 $.ajax({ 
 type: "POST", 
 url: "do.php?action=del", 
 data: "ids="+sels, 
 beforeSend: function() { 
  $().message("正在請求..."); 
 }, 
 error:function(){ 
  $().message("請求失敗..."); 
 }, 
 success: function(msg){ 
  if(msg!=0){ 
  var arr = msg.split(','); 
  $.each(arr,function(i,n){ 
  if(arr[i]!=""){ 
   $("#list").jqGrid('delRowData',n); 
  } 
  }); 
  $().message("已成功刪除!"); 
  }else{ 
  $().message("操作失??!"); 
  } 
 } 
 }); 
 } 
 } 
 }); 
}); 

看代碼,首先通過jqGrid的getGridParam方法獲取選中的數(shù)據(jù)行selarrrow,如果選中多項(xiàng),則獲取到的sels值是一個以逗號隔開的字符串,然后提示是否確認(rèn)刪除,確認(rèn)后提交ajax請求,如果后臺php刪除數(shù)據(jù)成功,則返回刪除的數(shù)據(jù)id,前端調(diào)用jqGrid的delRowData方法將對應(yīng)的數(shù)據(jù)行刪除,并提示“以成功刪除”。

后臺do.php獲取ajax提交過來的要刪除的id,執(zhí)行刪除語句,完成刪除操作。

switch ($action) { 
 case 'del' : //刪除 
 $ids = $_POST['ids']; 
 delAllSelect($ids, $link); 
 break; 
 case '' : 
 echo 'Bad request.'; 
 break; 
} 
//批量刪除操作 
function delAllSelect($ids, $link) { 
 if (empty ($ids)) 
 die("0"); 
 mysql_query("delete from products where id in($ids)"); 
 if (mysql_affected_rows($link)) { 
 echo $ids; 
 } else { 
 die("0"); 
 } 
} 

至此,我們已經(jīng)完成了對jqGrid的讀取、新增、刪除和查詢數(shù)據(jù)的基本操作的講解,希望對您有所幫助。對于jqGrid表格的應(yīng)用文章的講解有不對的地方,歡迎大家批評指正。

相關(guān)文章

  • 深入淺析jQuery對象$.html

    深入淺析jQuery對象$.html

    這篇文章主要介紹了jQuery對象$.html的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-08-08
  • jQuery的animate函數(shù)實(shí)現(xiàn)圖文切換動畫效果

    jQuery的animate函數(shù)實(shí)現(xiàn)圖文切換動畫效果

    animate()在jquery中作為一個方法,可用于創(chuàng)建動畫效果,jquery中的animate()方法讓那個頁面增加了很好的視覺效果
    2015-05-05
  • jQuery/$ is not defined報錯的幾種解決方法

    jQuery/$ is not defined報錯的幾種解決方法

    jQuery最常見的錯誤之一是$ is not defined錯誤,本文主要介紹了jQuery/$ is not defined報錯的幾種解決方法,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • jquery dialog鍵盤事件代碼

    jquery dialog鍵盤事件代碼

    jquery dialog鍵盤事件代碼,檢測回車等事件的觸發(fā)問題。
    2010-08-08
  • jQuery版AJAX簡易封裝代碼

    jQuery版AJAX簡易封裝代碼

    這篇文章主要為大家詳細(xì)介紹了jQuery版AJAX簡易封裝代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • jquery右下角彈出提示框示例代碼

    jquery右下角彈出提示框示例代碼

    右下角彈出提示框想必大家都有見到過吧,其實(shí)有實(shí)現(xiàn)方法有很多,在本文為大家詳細(xì)介紹在jquery中具體的實(shí)現(xiàn),感興趣的朋友可以了解下
    2013-10-10
  • jquery?追加元素append、prepend、before、after用法與區(qū)別分析

    jquery?追加元素append、prepend、before、after用法與區(qū)別分析

    在jquery中append、prepend、before、after方法是對數(shù)據(jù)元素節(jié)點(diǎn)的操作系列方法了,這些方法大家了解嗎?如果不了解就可以和小編來看看它們用法
    2016-12-12
  • 如何使用HTML5地理位置定位功能

    如何使用HTML5地理位置定位功能

    用相對簡單的JavaScript代碼,可以創(chuàng)建出能確定用戶地理位置詳細(xì)信息的Web應(yīng)用,包括經(jīng)緯度以及海拔等。一些Web應(yīng)用甚至能通過監(jiān)控用戶位置隨時間的移動來提供導(dǎo)航功能,其中還綜合了GoogleMaps API這樣的地圖系統(tǒng)。
    2015-04-04
  • jQuery定義插件的方法

    jQuery定義插件的方法

    有些WEB開發(fā)者,會引用一個JQuery類庫,然后在網(wǎng)頁上寫一寫$("#"),$("."),寫了幾年就對別人說非常熟悉JQuery。其實(shí)你只是了解一點(diǎn)皮毛,并不知道其中的道理,下面通過本篇文章給大家介紹jquery定義插件的相關(guān)知識,感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • jQuery autocomplete插件修改

    jQuery autocomplete插件修改

    如果你不知道什么是jQuery autocomplete插件,請看圖。你可以測試一下本站的搜索。當(dāng)然也可以百度一下。
    2009-04-04

最新評論

措勤县| 进贤县| 满城县| 长垣县| 娄底市| 应城市| 安福县| 新乡市| 南阳市| 东至县| 南靖县| 山东省| 南丰县| 随州市| 高淳县| 临漳县| 龙陵县| 浦北县| 上虞市| 子长县| 苍山县| 大安市| 夏河县| 金沙县| 章丘市| 达尔| 梓潼县| 祁阳县| 泗阳县| 内丘县| 富顺县| 外汇| 榕江县| 榆树市| 六枝特区| 屏南县| 东光县| 枝江市| 荃湾区| 内乡县| 左贡县|