成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? Jquery+Ajax+PHP+MySQL實現分類列表管理(上)
全站頭部文字 我要出現在這里
Jquery+Ajax+PHP+MySQL實現分類列表管理(上) 860 2024-03-22   

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

查看圖片

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

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

其次在頁面中引入jquery庫,以及操作結果提示插件jNotify和刪除確認插件hiAlert。后者兩個插件在本站都有詳細的講解,讀者可以通過鏈接了解下:
將需要準備的文件一并加入到index.php的<head>之間。

<script type="text/javascript" src="http://www.gimoo.net/t/1904/js/jquery.js"></script> 
<script type="text/javascript" src="http://www.gimoo.net/t/1904/js/jNotify.jquery.js"></script> 
<script type="text/javascript" src="http://www.gimoo.net/t/1904/js/jquery.alert.js"></script> 
<script type="text/javascript" src="http://www.gimoo.net/t/1904/js/global.js"></script> 
<link rel="stylesheet" type="text/css"  /> 

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

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

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

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

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

.input{width:160px; padding:2px; border:1px solid #d3d3d3} 
.cur_tr{background:#ffc} 
.selectlist{width:280px; margin:30px auto; border:1px solid #ccc;} 
.selectlist h3{height:32px; line-height:32px; padding:0 4px; border-bottom:1px dotted #d3d3d3; 
 background:#f7f7f7} 
.selectlist h3 span{float:right; font-weight:500} 
.selectlist ul{margin-top:4px; margin-left:20px; list-style-type: disc} 
.selectlist ul li{line-height:26px} 
.selectlist p{line-height:28px; padding-left:6px} 
.selectlist ul li span{width:20px; height:20px} 
.selectlist ul li span.edit{ float:right;background:url(images/edits.gif) no-repeat 0 5px; 
cursor:pointer} 
.selectlist ul li span.del,.selectlist ul li span.dels,.selectlist ul li span.cancer{ 
 float:right;background:url(images/del.gif) no-repeat 0 5px; cursor:pointer} 
.selectlist ul li span.ok,.selectlist ul li span.oks{float:right;background:url(images/ok.gif) 
no-repeat 0 5px; cursor:pointer} 

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

查看圖片

新增項操作
在global.js加入addOpt()函數:

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

通過單擊“新增一項”鏈接,向DOM中添加了一個新增項的輸入框。
當用戶輸入內容后,點擊“保存”,將會觸發一個ajax操作,先看代碼:

$(function(){ 
 //保存新增項 
 $(".ok").live('click',function(){ 
  var btn = $(this); 
  var input_str = btn.parent().find('input').val(); 
  if(input_str==""){ 
   jNotify("請輸入類別!"); 
   return false; 
  } 
  var str = escape(input_str); 
  $.getJSON("post.php?action=add&title="+str,function(json){ 
   if(json.success==1){ 
    var li = "<li rel='"+json.id+"'><span class='del' title='刪除'> 
    </span><span class='edit' title='編輯'></span><span class='txt'>"+ 
    json.title+"</span></li>"; 
    $("#catalist").append(li); 
    btn.parent().remove(); 
    jSuccess("恭喜,操作成功!"); 
   }else{ 
    jNotify("出錯了!"); 
    return false; 
   } 
  }); 
 }); 
}); 

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

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

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

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

通過接收前端提交的內容,進行解碼后,寫入數據表中,并輸出JSON數據格式供前臺處理。關于uniDecode()函數,讀者可以下載源碼了解,主要是為了正確讀取解析jquery通過異步提交的中文字符串。
添加項操作已經完成,下面請看刪除項操作。刪除項操作
回到global.js,在$(function(){})加入下面的代碼:

//刪除項 
 $(".del").live('click',function(){ 
  var btn = $(this); 
  var id = btn.parent().attr('rel'); 
  var URL = "post.php?action=del"; 
  hiConfirm('您確定要刪除嗎?', '提示',function(r){ 
   if(r){ 
    $.ajax({ 
    type: "POST", 
    url: URL, 
    data: "id="+id, 
    success: function(msg){ 
     if(msg==1){ 
      jSuccess("刪除成功!"); 
      btn.parent().remove(); 
     }else{ 
      jNotify("操作失敗!"); 
      return false; 
     } 
    } 
    }); 
   } 
  }); 
 }); 

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

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

以上這段代碼片段,加在post.php的switch語句中,執行了刪除語句,并輸出執行結果供前端處理。
限于篇幅,修改項操作在下此文章中再進行講解,敬請關注,不要錯過嘍。


PHP

主站蜘蛛池模板: 鸽子公母鉴别图解| 宇辉| 买下我俄罗斯完整版免费观看| 阮经天新电影| 听说你喜欢我电视剧剧情介绍| 大奉打更人电视剧免费在线观看| 速度与激情18| 王妍个人资料简介| 周超个人资料简介| 浙江卫视回放观看入口| 基于plc的毕业设计论文题目 | 风云太白山电影| 刘烨主演的电视剧| 西班牙女郎| 街头霸王 1994 尚格·云顿| 文奎| 地火电视剧38集| 《致青春》电影| 韩漫画未删减男同| 金粉蝶| 八下数学练习册答案| 武汉日夜| angela white在线播放| 哈尔的移动城堡免费完整版| 出轨幻想| 金恒| 理发店3| 女生被打屁股的视频| 黄霄云个人资料| 不死法医第一季在线观看免费完整版| mariaarredondo| 大学生职业规划ppt成品| 熊出没之雪岭熊风 2015 张伟| 乱世枭雄评书485集免费| 电影《真爱如血》免费播放| 心奇爆龙| 太医派的开胃汤配方 | 不回微信判30年图片| 林安| 超级飞侠 第四季 动漫| 因性而别|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103