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 相关文章推荐
JavaScript 异步调用框架 (Part 2 - 用例设计)
Aug 03 Javascript
jQuery学习笔记之jQuery动画效果
Sep 09 Javascript
Jquery Ajax方法传值到action的方法
May 11 Javascript
Javascript中arguments和arguments.callee的区别浅析
Apr 24 Javascript
浅谈jquery事件处理
Apr 24 Javascript
JS简单实现表格排序功能示例
Dec 20 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
Mar 01 Javascript
Vue2.0组件间数据传递示例
Mar 07 Javascript
js+html5实现半透明遮罩层弹框效果
Aug 24 Javascript
vue 实现在函数中触发路由跳转的示例
Sep 01 Javascript
原生JS使用Canvas实现拖拽式绘图功能
Jun 05 Javascript
微信小程序实现左滑动删除效果
Mar 30 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
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
2007/08/26 PHP
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
CodeIgniter常用知识点小结
2016/05/26 PHP
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
2013/10/25 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
2014/01/03 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
JavaScript省市级联下拉菜单实例
2017/02/14 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
vue构建单页面应用实战
2017/04/10 Javascript
js实现各浏览器全屏代码实例
2018/07/03 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
微信小程序云开发之新手环境配置
2019/05/16 Javascript
vue组件三大核心概念图文详解
2019/05/30 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
python单链表实现代码实例
2013/11/21 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
详解python项目实战:模拟登陆CSDN
2019/04/04 Python
python爬虫 爬取超清壁纸代码实例
2019/08/16 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
汇集了世界上最好的天然和有机美容产品:LoveLula
2018/02/05 全球购物
丝芙兰新加坡官网:Sephora新加坡
2018/12/04 全球购物
澳大利亚巧克力花束和礼品网站:Tastebuds
2019/03/15 全球购物
四个太阳教学反思
2014/02/01 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
2014年科普工作总结
2014/12/06 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
微信小程序 根据不同用户切换不同TabBar
2022/04/21 Javascript