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 相关文章推荐
js checkbox(复选框) 使用集锦
Apr 28 Javascript
javascript计时器事件使用详解
Jan 07 Javascript
js点击选择文本的方法
Feb 09 Javascript
java必学必会之static关键字
Dec 03 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
Feb 24 Javascript
vue实现密码显示隐藏切换功能
Feb 23 Javascript
angular 内存溢出的问题解决
Jul 12 Javascript
jquery无缝图片轮播组件封装
Nov 25 jQuery
jQuery实现文本显示一段时间后隐藏的方法分析
Jun 20 jQuery
使用axios请求接口,几种content-type的区别详解
Oct 29 Javascript
Javascript如何递归遍历本地文件夹
Aug 06 Javascript
针对Vue路由history模式下Nginx后台配置操作
Oct 22 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
2019十大人气国漫
2020/03/13 国漫
PHP提示Notice: Undefined variable的解决办法
2012/11/24 PHP
php实现excel中rank函数功能的方法
2015/01/20 PHP
PHP模板引擎Smarty内建函数详解
2016/04/11 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
2016/10/29 PHP
利用ajax和PHP实现简单的流程管理
2017/03/23 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
2017/07/13 PHP
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
根据出生日期自动取得星座的js代码
2010/07/20 Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
2016/04/13 Javascript
jQuery属性选择器用法示例
2016/09/09 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
JavaScript的事件机制详解
2017/01/17 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
vue调试工具vue-devtools安装及使用方法
2018/11/07 Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
2019/01/18 Javascript
vue过滤器用法实例分析
2019/03/15 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
ES6中的Javascript解构的实现
2020/10/30 Javascript
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
对python:threading.Thread类的使用方法详解
2019/01/31 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
Python实现自动访问网页的例子
2020/02/21 Python
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
大学生毕业自我评价范文分享
2013/11/07 职场文书
给校长的建议书100字
2014/05/16 职场文书
社区健康教育工作方案
2014/06/03 职场文书
邀请函模板
2015/02/02 职场文书
员工辞退通知书
2015/04/17 职场文书
2015年大学生党员承诺书
2015/04/27 职场文书
大学学生会主席竞选稿怎么写?
2019/08/19 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书