Jquery+Ajax+PHP+MySQL实现分类列表管理(下)


Posted in Javascript onOctober 28, 2015

在上篇中,我们详细讲解了如何实现列表管理的新增和删除操作,可以看出,前端页面通过ajax与后台通信,根据后台处理结果响应前端页面交互操作,这是一个很典型的Ajax和JSON应用的例子。
本文将继续上篇文中的示例,完成编辑操作。
编辑项操作
用户通过单击“编辑”按钮,相应的项会立即变为编辑状态,出现一个输入框,用户可以重新输入新的内容,然后点击“保存”按钮完成编辑操作,也可以单击“取消”按钮取消编辑状态。
首先,通过单击“编辑”按钮,实现编辑状态,在global.js的$(function(){...})中加入如下代码:

//编辑选项 
$(".edit").live('click',function(){ 
  $(this).removeClass('edit').addClass('oks').attr('title','保存'); 
  $(this).prev().removeClass('del').addClass('cancer').attr('title','取消'); 
  var str = $(this).parent().text(); 
  var input = "<input type='text' class='input' value='"+str+"' />"; 
  $(this).next().wrapInner(input); 
});

从代码中可以看出,其实是改变了“编辑”按钮和“删除”按钮的class样式,修改了其title属性,然后将分类名称用一个input输入框包裹(wrapInner),这样就生成了一个编辑状态。
要将修改好的内容提交给后台处理,通过单击“保存”按钮,会发生下面的事情,请看代码:

//编辑处理 
$(".oks").live('click',function(){ 
  var input_str = $(this).parent().find('input').val(); 
  if(input_str==""){ 
    jNotify("请输入类别名称!"); 
    return false; 
  } 
  var str = escape(input_str); 
  var id = $(this).parent().attr("rel"); 
  var URL = "post.php?action=edit"; 
     
  var btn = $(this); 
  $.ajax({ 
      type: "POST", 
      url: URL, 
      data: "title="+str+"&id="+id, 
      success: function(msg){ 
        if(msg==1){ 
          jSuccess("编辑成功!"); 
          var strs = "<span class='del' title='删除'></span><span class='edit' 
          title='编辑'></span><span class='txt'>"+input_str+"</span>; 
          btn.parent().html(strs); 
        }else{ 
          jNotify("操作失败!"); 
          return false; 
        } 
      } 
  }); 
});

通过单击编辑状态下的“保存”按钮,首先获取输入框的内容,如果没有输入任何内容则提示用户输入内容,然后将用户输入的内容进行escape编码,同时还要获取编辑项对应的ID,将输入的内容和ID作为参数通过$.ajax提交给后台post.php处理,并响应后台返回的信息,如果返回成功,则提示用户“编辑成功”,并且解除编辑状态,如果返回失败,则提示用户“操作失败”。
后台post.php处理编辑项操作与上篇的新增项操作差不多,代码如下:

case 'edit': //编辑项 
  $id = $_POST['id']; 
  $title = uniDecode($_POST['title'],'utf-8'); 
  $title = htmlspecialchars($title,ENT_QUOTES); 
  $query = mysql_query("update catalist set title='$title' where cid='$id'"); 
  if($query){ 
    echo '1'; 
  }else{ 
    echo '2'; 
  } 
  break;

以上代码片段加在post.php的switch语句中,代码接收了前端传来的id和title参数,并对title参数进行解码,然后更新数据表中对应的项,并输出执行结果给前台处理。
要取消编辑状态,则通过单击“取消”执行以下代码:

//取消编辑 
$(".cancer").live('click',function(){ 
  var li = $(this).parent().html(); 
  var str_1 = $(this).parent().find('input').val(); 
  var strs = "<span class='del' title='删除'></span><span class='edit' title='编辑'> 
  </span><span class='txt'>"+str_1+"</span>"; 
  $(this).parent().html(strs); 
});

其实,代码重新组装了一个字符串,重新将组装的字符串替代了编辑状态,即取消了编辑状态。
通过这样一个实际应用的案例,我们可以体验前端技术的优越性,用户完成的每一步操作是那么的友好,这是用户体验的一个方面。Jquery库让ajax操作变得如此简单,文中代码中还用到了jquery的live方法,这是为了绑定动态创建DOM元素所必需的。

上面两篇就是小编为大家整理的关于Jquery+Ajax+PHP+MySQL实现分类列表管理的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
ExtJS GTGrid 简单用户管理
Jul 01 Javascript
精通Javascript系列之数值计算
Jun 07 Javascript
javascript上传图片前预览图片兼容大多数浏览器
Oct 25 Javascript
jquery 插件实现瀑布流图片展示实例
Apr 03 Javascript
confirm确认对话框的实现方法总结
Jun 17 Javascript
前端编码规范(3)JavaScript 开发规范
Jan 21 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
Nov 28 Javascript
JavaScript实现全选取消效果
Dec 14 Javascript
使用JSON格式提交数据到服务端的实例代码
Apr 01 Javascript
Vue.js实现表格渲染的方法
Sep 07 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
Apr 20 Javascript
electron踩坑之remote of undefined的解决
Oct 06 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
Oct 28 #Javascript
自己动手写的jquery分页控件(非常简单实用)
Oct 28 #Javascript
Jquery日历插件制作简单日历
Oct 28 #Javascript
使用CoffeeScrip优美方式编写javascript代码
Oct 28 #Javascript
开启Javascript中apply、call、bind的用法之旅模式
Oct 28 #Javascript
JavaScript多并发问题如何处理
Oct 28 #Javascript
JS实现双击屏幕滚动效果代码
Oct 28 #Javascript
You might like
windows xp下安装pear
2006/12/02 PHP
PHP APC缓存配置、使用详解
2014/03/06 PHP
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
php通过两层过滤获取留言内容的方法
2016/07/11 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
2007/01/09 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
javascript用户注册提示效果的简单实例
2013/08/17 Javascript
导入extjs、jquery 文件时$使用冲突问题解决方法
2014/01/14 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
angularjs基础教程
2014/12/25 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
React复制到剪贴板的示例代码
2017/08/22 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
2019/02/01 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
使用layui的layer组件做弹出层的例子
2019/09/27 Javascript
Vue 图片压缩并上传至服务器功能
2020/01/15 Javascript
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
[43:47]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第一场 12.09
2020/12/11 DOTA
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
python3爬虫之设计签名小程序
2018/06/19 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
django的model操作汇整详解
2019/07/26 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
python 实现生成均匀分布的点
2019/12/05 Python
Python查找不限层级Json数据中某个key或者value的路径方式
2020/02/27 Python
Python可以实现栈的结构吗
2020/05/27 Python
python如何写出表白程序
2020/06/01 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
基于django和dropzone.js实现上传文件
2020/11/24 Python
Annoushka英国官网:英国奢侈珠宝品牌
2018/10/20 全球购物
领导干部群众路线对照检查材料
2014/11/05 职场文书