国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

jQuery+Ajax+PHP+MySQL實現分類列表管理

開發 前端
本文將采用Jquery+Ajax+PHP+MySQL來實現一個客戶分類列表的管理,如何利用Ajax和Json技術讓用戶操作起來覺得更輕松,且看本文一一講解

在實際應用中,我們要管理一個客戶分類,實現對客戶分類的增加、刪除和修改等操作,如何讓這些操作變得更人性化,讓用戶操作起來更加方便成了我們必須研究的課題。

本文將采用jQuery+Ajax+PHP+MySQL來實現一個客戶分類列表的管理,如何利用Ajax和Json技術讓用戶操作起來覺得更輕松,且看本文一一講解。

采用Jquery+Ajax+PHP+MySQL實現分類列表管理 

展示下載

準備階段

您需要具備HTML和jQuery等前端知識,以及基本的PHP程序和MySQL數據庫相關知識。要實現本文中的DEMO示例,首先需要一個MySQLl數據庫:

  1. CREATE TABLE `catalist` (   
  2.   `cid` int(11) NOT NULL auto_increment,   
  3.   `title` varchar(100) NOT NULL,   
  4.   `sort` mediumint(6) NOT NULL default '0',   
  5.   PRIMARY KEY  (`cid`)   
  6. ENGINE=MyISAM  DEFAULT CHARSET=utf8;  

其次在頁面中引入jquery庫,以及操作結果提示插件jNotify和刪除確認插件hiAlert。

將需要準備的文件一并加入到index.php的<head>之間。

  1. <script type="text/javascript" src="js/jquery.js"></script>   
  2. <script type="text/javascript" src="js/jNotify.jquery.js"></script>   
  3. <script type="text/javascript" src="js/jquery.alert.js"></script>   
  4. <script type="text/javascript" src="js/global.js"></script>   
  5. <link rel="stylesheet" type="text/css" href="css/alert.css" />  

準備完畢我們進入主題。

index.php

index.php是主體頁面,讀取了數據庫中的分類數據,以列表展示,并提供了增加、刪除和修改的功能按鈕。

  1. <?php   
  2. include_once('connect.php'); //連接數據庫   
  3. $query = mysql_query("select * from catalist order by cid asc");   
  4. while($row=mysql_fetch_array($query)){   
  5.     $list ."<li rel='".$row['cid']."'><span class='del' title='刪除'></span>   
  6.     <span class='edit' title='編輯'></span><span class='txt'>".$row['title']."</span></li>";   
  7. }   
  8. ?>  

以上代碼通過讀取數據表中的數據,返回一個列表字符串。然后我們要將字符串輸出到對應的列表中,代碼如下:

  1. <div class="selectlist">   
  2.     <h3>客戶類別</h3>   
  3.     <ul id="catalist">   
  4.          <?php echo $list;?>   
  5.     </ul>   
  6.     <p><a href="javascript:;" onclick="addOpt()">新增一項</a></p>   
  7. </div>  

試著往數據表中添加幾條數據,可以看到一個分類列表。

CSS

  1. input{width:160pxpadding:2pxborder:1px solid #d3d3d3}   
  2. cur_tr{background:#ffc}   
  3. selectlist{width:280pxmargin:30px auto;  border:1px solid #ccc;}   
  4. selectlist h3{height:32pxline-height:32pxpadding:0 4pxborder-bottom:1px dotted #d3d3d3;   
  5.  background:#f7f7f7}   
  6. selectlist h3 span{float:rightfont-weight:500}   
  7. selectlist ul{margin-top:4pxmargin-left:20pxlist-style-typedisc}   
  8. selectlist ul li{line-height:26px}   
  9. selectlist p{line-height:28pxpadding-left:6px}   
  10. selectlist ul li span{width:20pxheight:20px}   
  11. selectlist ul li span.edit{ float:right;background:url(images/edits.gif) no-repeat 0 5px;    
  12. cursor:pointer}   
  13. selectlist ul li span.del,.selectlist ul li span.dels,.selectlist ul li span.cancer{   
  14.  float:right;background:url(images/del.gif) no-repeat 0 5pxcursor:pointer}   
  15. selectlist ul li span.ok,.selectlist ul li span.oks{float:right;background:url(images/ok.gif)    
  16. no-repeat 0 5pxcursor:pointer}  

CSS我就不詳細講解,看下就明白了,最終顯示的效果如圖:

Jquery+Ajax+PHP+MySQL實現分類列表

新增項操作

在global.js加入addOpt()函數:

  1. function addOpt(){   
  2.     var str = "<li><span class='dels' title='取消'></span><span class='ok' title='保存'></span>   
  3.     <input type='text' class='input' /></li>";   
  4.     $("#catalist").append(str);   
  5. }  

通過單擊“新增一項”鏈接,向DOM中添加了一個新增項的輸入框。

當用戶輸入內容后,點擊“保存”,將會觸發一個ajax操作,先看代碼:

  1. $(function(){   
  2.     //保存新增項   
  3.     $(".ok").live('click',function(){   
  4.         var btn = $(this);   
  5.         var input_str = btn.parent().find('input').val();   
  6.         if(input_str==""){   
  7.             jNotify("請輸入類別!");   
  8.             return false;   
  9.         }   
  10.         var str = escape(input_str);   
  11.         $.getJSON("post.php?action=add&title="+str,function(json){   
  12.             if(json.success==1){   
  13.                 var li = "<li rel='"+json.id+"'><span class='del' title='刪除'>   
  14.                 </span><span class='edit' title='編輯'></span><span class='txt'>"+   
  15.                 json.title+"</span></li>";   
  16.                 $("#catalist").append(li);   
  17.                 btn.parent().remove();   
  18.                 jSuccess("恭喜,操作成功!");   
  19.             }else{   
  20.                 jNotify("出錯了!");   
  21.                 return false;   
  22.             }   
  23.         });   
  24.     });   
  25. });  

首先獲取用戶輸入的內容,如果沒有輸入任何內容則提示用戶輸入內容,然后將用戶輸入的內容進行escape編碼,保證中文字符能正確傳輸給后臺程序識別。然后通過$.getJSON方法向后臺post.php發起一個異步的Ajax請求。后臺post.php接收參數值并進行相關處理,前端代碼通過響應后臺返回的JSON數據,如果新增成功,則向列表后面追加一項,并提示用戶“操作成功”,如果失敗則提示用戶“出錯了”。

如果要取消新增項操作,只需當單擊“取消”按鈕時執行以下代碼:

  1. //取消新增項   
  2. $(".dels").live('click',function(){   
  3.      $(this).parent().remove();  //將新增項移除   
  4. });  

后臺post.php需要處理新增項內容,代碼如下:

  1. include_once('connect.php'); //連接數據庫   
  2. $action = $_GET['action'];   
  3. switch($action){   
  4.     case 'add':  //新增項   
  5.        $title = uniDecode($_GET['title'],'utf-8');   
  6.        $title = htmlspecialchars($title,ENT_QUOTES);   
  7.        $query = mysql_query("insert into catalist (cid,title) values (NULL,'$title')");   
  8.        if($query){   
  9.            $insertid = mysql_insert_id($link);   
  10.            $arr = array('id'=>$insertid,'title'=>$title,'success'=>1);   
  11.        }else{   
  12.            $arr = array('success'=>2);   
  13.        }   
  14.        echo json_encode($arr);   
  15.        break;   
  16.      case '':   
  17.        break;   
  18. }  

通過接收前端提交的內容,進行解碼后,寫入數據表中,并輸出JSON數據格式供前臺處理。關于uniDecode()函數,讀者可以下載源碼了解,主要是為了正確讀取解析jquery通過異步提交的中文字符串。

添加項操作已經完成,下面請看刪除項操作。

刪除項操作

回到global.js,在$(function(){})加入下面的代碼:

  1. //刪除項   
  2.     $(".del").live('click',function(){   
  3.         var btn = $(this);   
  4.         var id = btn.parent().attr('rel');   
  5.         var URL = "post.php?action=del";   
  6.         hiConfirm('您確定要刪除嗎?''提示',function(r){   
  7.             if(r){   
  8.               $.ajax({   
  9.                 type: "POST",   
  10.                 url: URL,   
  11.                 data: "id="+id,   
  12.                 success: function(msg){   
  13.                    if(msg==1){   
  14.                        jSuccess("刪除成功!");   
  15.                        btn.parent().remove();   
  16.                    }else{   
  17.                        jNotify("操作失敗!");   
  18.                        return false;   
  19.                    }   
  20.                 }   
  21.              });   
  22.             }   
  23.         });   
  24.     });  

顯然,通過單擊“刪除”按鈕,同樣是向后臺post.php發送一個ajax請求,將刪除項對應的參數ID發送給后臺并響應后臺處理結果,如果成功,則提示用戶“刪除成功”,并通過remove()將數據項移除,如果失敗,則提示“操作失敗”。

后臺post.php接收參數并作出相應的處理:

  1. case 'del':  //刪除項   
  2.     $id = $_POST['id'];   
  3.     $query = mysql_query("delete from catalist where cid=".$id);   
  4.     if($query){   
  5.         echo '1';   
  6.     }else{   
  7.         echo '2';   
  8.     }   
  9.     break;  

以上這段代碼片段,加在post.php的switch語句中,執行了刪除語句,并輸出執行結果供前端處理。

#p#

在上篇中,我們詳細講解了如何實現列表管理的新增和刪除操作,可以看出,前端頁面通過ajax與后臺通信,根據后臺處理結果響應前端頁面交互操作,這是一個很典型的Ajax和JSON應用的例子。

編輯項操作

用戶通過單擊“編輯”按鈕,相應的項會立即變為編輯狀態,出現一個輸入框,用戶可以重新輸入新的內容,然后點擊“保存”按鈕完成編輯操作,也可以單擊“取消”按鈕取消編輯狀態。

首先,通過單擊“編輯”按鈕,實現編輯狀態,在global.js的$(function(){...})中加入如下代碼:

  1. //編輯選項   
  2. $(".edit").live('click',function(){   
  3.     $(this).removeClass('edit').addClass('oks').attr('title','保存');   
  4.     $(this).prev().removeClass('del').addClass('cancer').attr('title','取消');   
  5.     var str = $(this).parent().text();   
  6.     var input = "<input type='text' class='input' value='"+str+"' />";   
  7.     $(this).next().wrapInner(input);   
  8. });  

從代碼中可以看出,其實是改變了“編輯”按鈕和“刪除”按鈕的class樣式,修改了其title屬性,然后將分類名稱用一個input輸入框包裹(wrapInner),這樣就生成了一個編輯狀態。

要將修改好的內容提交給后臺處理,通過單擊“保存”按鈕,會發生下面的事情,請看代碼:

  1. //編輯處理   
  2. $(".oks").live('click',function(){   
  3.     var input_str = $(this).parent().find('input').val();   
  4.     if(input_str==""){   
  5.         jNotify("請輸入類別名稱!");   
  6.         return false;   
  7.     }   
  8.     var str = escape(input_str);   
  9.     var id = $(this).parent().attr("rel");   
  10.     var URL = "post.php?action=edit";   
  11.            
  12.     var btn = $(this);   
  13.     $.ajax({   
  14.             type: "POST",   
  15.             url: URL,   
  16.             data: "title="+str+"&id="+id,   
  17.             success: function(msg){   
  18.                 if(msg==1){   
  19.                     jSuccess("編輯成功!");   
  20.                     var strs = "<span class='del' title='刪除'></span><span class='edit'   
  21.                     title='編輯'></span><span class='txt'>"+input_str+"</span>;   
  22.                     btn.parent().html(strs);   
  23.                 }else{   
  24.                     jNotify("操作失敗!");   
  25.                     return false;   
  26.                 }   
  27.            }   
  28.     });   
  29. });  

通過單擊編輯狀態下的“保存”按鈕,首先獲取輸入框的內容,如果沒有輸入任何內容則提示用戶輸入內容,然后將用戶輸入的內容進行escape編碼,同時還要獲取編輯項對應的ID,將輸入的內容和ID作為參數通過$.ajax提交給后臺post.php處理,并響應后臺返回的信息,如果返回成功,則提示用戶“編輯成功”,并且解除編輯狀態,如果返回失敗,則提示用戶“操作失敗”。

后臺post.php處理編輯項操作與上篇的新增項操作差不多,代碼如下:

  1. case 'edit':  //編輯項   
  2.     $id = $_POST['id'];   
  3.     $title = uniDecode($_POST['title'],'utf-8');   
  4.     $title = htmlspecialchars($title,ENT_QUOTES);   
  5.     $query = mysql_query("update catalist set title='$title' where cid='$id'");   
  6.     if($query){   
  7.         echo '1';   
  8.     }else{   
  9.         echo '2';   
  10.     }   
  11.     break;  

以上代碼片段加在post.php的switch語句中,代碼接收了前端傳來的id和title參數,并對title參數進行解碼,然后更新數據表中對應的項,并輸出執行結果給前臺處理。

要取消編輯狀態,則通過單擊“取消”執行以下代碼:

  1. //取消編輯   
  2. $(".cancer").live('click',function(){   
  3.     var li = $(this).parent().html();   
  4.     var str_1 = $(this).parent().find('input').val();   
  5.     var strs = "<span class='del' title='刪除'></span><span class='edit' title='編輯'>   
  6.     </span><span class='txt'>"+str_1+"</span>";   
  7.     $(this).parent().html(strs);   
  8. });  

其實,代碼重新組裝了一個字符串,重新將組裝的字符串替代了編輯狀態,即取消了編輯狀態。

總結

通過這樣一個實際應用的案例,我們可以體驗前端技術的優越性,用戶完成的每一步操作是那么的友好,這是用戶體驗的一個方面。Jquery庫讓ajax操作變得如此簡單,文中代碼中還用到了jquery的live方法,這是為了綁定動態創建DOM元素所必需的。此外,文中沒有提到驗證輸入類表的重復性,這個是需要后臺驗證的,讀者朋友們可以自行寫一段驗證代碼。最后,順便提一下,如果本例再加上一個拖動排序的功能,是不是會更完美呢?關于拖動排序的實現,helloweba.com也有相關實例講解,各位讀者朋友可以先熟知。

原文鏈接:http://www.helloweba.com/view-blog-127.html

【編輯推薦】

  1. 基于jQuery與PHP實現Ajax長輪詢(LongPoll)
  2. 如何理解與簡化jQuery的closest函數
  3. jQuery調用WCF開發實例經驗分享
  4. 從零開始學習jQuery之管理jQuery包裝集
  5. jQuery性能指標和調優
責任編輯:陳貽新 來源: 月光光
相關推薦

2009-12-07 11:31:51

PHP分類列表

2017-10-11 18:17:06

大數據數據可視化前后端

2011-05-18 13:28:46

jQueryPHPAJAX

2012-02-08 17:01:36

2011-03-23 10:55:55

PHPMySQLjQuery

2010-10-27 10:02:36

PHP

2012-05-02 10:41:31

ASP.NET

2010-10-25 10:07:48

jQuery

2012-04-27 10:13:30

jQuery Ajax

2009-06-26 13:46:13

Struts

2011-04-14 10:08:04

AJAXPHPJQuery

2010-12-28 13:44:12

PHPXMLjQuery

2009-11-24 16:09:44

PHP Ajax

2009-12-07 12:56:40

PHP文件管理

2013-12-02 14:40:03

jQueryAjax

2010-06-04 10:40:55

AJAX MySQL

2011-06-17 10:11:01

jQueryPHP

2011-01-24 13:20:49

2009-09-07 14:41:48

GridView展開與

2011-10-28 14:01:30

jQuery
點贊
收藏

51CTO技術棧公眾號

欧美成人日韩| 成人美女视频在线观看| 亚洲国产成人精品久久| 男女羞羞视频教学| 国产在线精品国自产拍免费| 国产精品久久久久久久午夜| 日本一道高清亚洲日美韩| 欧美性xxxxx极品少妇| 亚洲熟妇av一区二区三区漫画| 国产在线不卡| av一区二区三区在线观看| 香蕉视频一区| 孩xxxx性bbbb欧美| 九色精品蝌蚪| 在线播放亚洲激情| 唐人社导航福利精品| 欧美久久免费观看| 青青青草视频在线| 精品电影一区二区三区| 超碰在线最新网址| 亚洲天堂成人在线视频| 日韩高清中文字幕一区二区| 亚洲性猛交xxxxwww| 四虎影视国产精品| 色久欧美在线视频观看| yy6080久久伦理一区二区| 国产亚洲欧洲高清| 国模大尺度视频一区二区| 欧美精品一区二区三区国产精品| 日韩一区二区三区高清在线观看| 欧美精品电影在线| 91精品国产乱码久久久久久| 狠狠干一区二区| 美女视频一区在线观看| av天堂永久资源网| 亚洲精品免费在线| 美女免费久久| 美女精品视频一区| 韩国自拍一区| 亚洲精品无码久久久久久| 午夜视频一区二区| 国产在线美女| 51精品国产黑色丝袜高跟鞋| 国产欧美69| 亚洲天堂网一区| 3atv一区二区三区| 一区二区三区四区视频免费观看| 99久久精品一区二区| 一区二区三区在线视频播放| 无码人妻h动漫| 色婷婷一区二区三区四区| 日韩伦理在线观看| 色777狠狠综合秋免鲁丝| 色综合咪咪久久网| 久久久国产欧美| 亚洲综合久久av| 日日夜夜天天综合入口| 欧美国产精品日韩| 中文字幕av一区二区三区人| 欧美另类网站| 一区二区三区自拍| 成人在线视频观看| 国产伊人精品在线| 久久久青草青青国产亚洲免观| yw视频在线观看| 亚洲精品www久久久| 亚州精品视频| 全黄性性激高免费视频| 亚洲欧洲在线播放| 影音先锋久久资源网| 国产乱xxⅹxx国语对白| 亚洲欧美国产视频| 成人激情免费视频| 欧美 日韩 国产 激情| 日韩av影视在线| 老**午夜毛片一区二区三区| 日本wwwwww| 欧美激情伊人电影| 久久久久久久精| 美女日韩一区| 国产福利一区视频| 欧美激情精品久久久久| www.日韩精品| 国产啊啊啊视频在线观看| 国产精品久久亚洲| 欧美日韩国产综合一区二区| 成人羞羞在线观看网站| 污污动漫在线观看| 九九精品在线观看| 中文字幕日韩一区| 在线看片不卡| 国产视频三级在线观看播放| 国产精品一区二| 亚洲成人999| 国产午夜精品久久久久久免费视| 亚洲综合资源| eeuss在线播放| 99re国产在线播放| 91精品麻豆日日躁夜夜躁| 久久资源在线| 97精品国产综合久久久动漫日韩 | 尤物在线观看一区| 日韩在线亚洲| 成人漫画网站免费| 久久久久天天天天| 午夜精品久久久久久久男人的天堂| 欧美激情一区三区| 91成人免费| 久久亚洲人体| aaa大片在线观看| 久久精品香蕉视频| 成人免费在线一区二区三区| 一本色道久久88综合日韩精品| 欧美日韩激情小视频| 精品一区二区国语对白| 久久国产成人精品| 亚洲一区电影| 五月婷婷视频在线观看| 国产香蕉尹人视频在线| 免费极品av一视觉盛宴| 国产精品成人观看视频免费| 97视频免费观看| 国产亚洲美女精品久久久| 欧美性生活大片视频| 国产精品久久久久久久第一福利| 麻豆精品在线播放| 亚洲三级视频| 小处雏高清一区二区三区| 欧美人与动xxxxz0oz| 欧美日韩视频免费看| 黑森林国产精品av| 黄网站在线观| 国产在线看片免费视频在线观看| 毛片在线免费| 免费看成年人视频在线观看| 国产一线二线三线在线观看| 天堂…中文在线最新版在线| 一级日韩一区在线观看| 台湾成人av| 亚洲第一导航| 日韩欧美猛交xxxxx无码| 亚洲永久一区二区三区在线| 国产免费高清一区| 国产一区二区自拍| 欧美黄色直播| 久久精品国产精品亚洲精品色| 成人一区二区电影| 成人激情直播| 日本不卡一区二区三区在线观看 | 亚洲av综合色区| 久久久久久久9| 午夜啪啪福利视频| 国产青青在线视频| 国产黄色影视| 九一国产在线| 羞羞视频在线免费国产| 老色鬼在线视频| 成人免费看黄| 天堂在线精品| 日韩在线一二三区| 久久成人麻豆午夜电影| 日本一区二区在线不卡| 亚洲福利一区二区| 欧美一区二区福利在线| 久久久99久久精品女同性| 国产精品jizz在线观看麻豆| 成人午夜在线视频一区| 五月婷婷一区| 成人三级av| 暧暧视频在线免费观看| 动漫3d精品一区二区三区乱码| 制服丝袜日韩| 韩国毛片一区二区三区| 午夜精品久久久久久久99水蜜桃| 亚洲精品一区二区三区婷婷月| 欧美成人在线影院| 久久久久久亚洲精品不卡4k岛国| 成人在线观看a| 日本高清成人vr专区| 欧美一区二区三区久久| 国产一区二区精品久久99| 日韩欧美在线一区| 欧美在线免费视频| 97在线播放视频| 色黄网站在线观看| 希岛爱理av一区二区三区| 国产精品麻豆欧美日韩ww| 伊人久久精品视频| 中文字幕国产一区| 日韩一区二区三区视频| 操91在线视频| 欧美12av| 加勒比日本影视| а√天堂资源国产精品| 久久精选视频| 欧美男人的天堂一二区| 国产精品你懂得| 91大神影片| 林ゆな中文字幕一区二区| 97久久超碰精品国产|