AJAX异步更改数据库
来源:互联网 发布:windows 虚拟打印机 编辑:程序博客网 时间:2024/05/01 16:34
AJAX异步更改数据库
前段时间做了一个小网站,里面有个小功能感觉挺好的,在此与大家分享一下,还请各位大神不要笑话小弟的无知。
此功能大概是这个样子的:点击下图中的类别名称,就可以对类别进行修改。
点击类别名称以后,原来的表格变成一个可编辑的文本框,并全选里面的内容,此时可直接进行修改。回车或者鼠标点击其他地方,提交修改内容.
如果不做修改点击别处或者按“Esc”或回车键,就会回到之前的样子,如果修改后跟其他类名重复就会有相应的提示:
如果类名没问题就会将修改后的内容显示到页面,同时会修改数据库的值。
数据库修改前 数据库修改后
用到的js代码
/**********************************************创建人:刘水镜说明: 可编辑的表格**********************************************/$(function () { // 相当于在页面中的body标签加上onload事件 $(".caname").click(function () { // 给页面中有caname类的标签加上click函数 var objTD = $(this); var oldText = $.trim(objTD.text()); // 保存老的类别名称 var input = $("<input type='text' value='" + oldText + "' />"); // 文本框的HTML代码 objTD.html(input); // 当前td的内容变为文本框 // 设置文本框的点击事件失效 input.click(function () { return false; }); // 设置文本框的样式 input.css("border-width", "0px"); //边框为0 input.height(objTD.height()); //文本框的高度为当前td单元格的高度 input.width(objTD.width()); // 宽度为当前td单元格的宽度 input.css("font-size", "16px"); // 文本框的内容文字大小为16px input.css("text-align", "center"); // 文本居中 input.trigger("focus").trigger("select"); // 全选 // 文本框失去焦点时重新变为文本 input.blur(function () { var newText = $(this).val(); // 修改后的名称 var input_blur = $(this); // 当老的类别名称与修改后的名称不同的时候才进行数据的提交操作 if (oldText != newText) { // 获取该类别名所对应的ID(序号) var caid = $.trim(objTD.prev().text()); // AJAX异步更改数据库 var url = "../handler/ChangeCaName.ashx?caname=" + encodeURI(encodeURI(newText)) + "&caid=" + caid + "&t=" + new Date().getTime(); $.get(url, function (data) { if (data == "false") { alert("类别修改失败,请检查是否类别名称重复!"); input_blur.trigger("focus").trigger("select"); // 文本框全选 } else { $("#test").text(""); objTD.html(newText); } }); } else { // 前后文本一致,把文本框变成标签 objTD.html(newText); } }); // 在文本框中按下键盘某键 input.keydown(function (event) { var jianzhi = event.keyCode; var input_keydown = $(this); switch (jianzhi) { case 13: // 按下回车键 ,把修改后的值提交到数据库 // $("#test").text("您按下的键值是: " + jianzhi); var newText = input_keydown.val(); // 修改后的名称 // 当老的类别名称与修改后的名称不同的时候才进行数据的提交操作 if (oldText != newText) { // 获取该类别名所对应的ID(序号) var caid = $.trim(objTD.prev().text()); // AJAX异步更改数据库 var url = "../handler/ChangeCaName.ashx?caname=" + encodeURI(encodeURI(newText)) + "&caid=" + caid + "&t=" + new Date().getTime(); $.get(url, function (data) { if (data == "false") { alert("类别修改失败,请检查是否类别名称重复!"); input_keydown.trigger("focus").trigger("select"); // 文本框全选 } else { $("#test").text(""); objTD.html(newText); } }); } else { // 前后文本一致,把文本框变成标签 objTD.html(newText); } break; case 27: // 按下Esc键, 取消修改,把文本框变成标签 $("#test").text(""); objTD.html(oldText); break; } }); });});// 屏蔽Enter按键$(document).keydown(function (event) { switch (event.keyCode) { case 13: return false; }});
一般处理程序代码
using System;using System.Collections.Generic;using System.Linq;using System.Web;using Model;using BLL;namespace Web.handler{ /// <summary> /// ChangeCaName 的摘要说明 /// </summary> public class ChangeCaName : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string caid = context.Request.QueryString["caid"]; string caname =context.Server.UrlDecode (context.Request.QueryString["caname"]); Category ca = new Category(caid, caname); //判断是否已有该类别名 CategoryManger camgr = new CategoryManger(); if (camgr.IsExist(caname)) { //存在 context.Response.Write("false"); return; } //更改数据库类别名 bool b=camgr.Update( ca); if (b) { context.Response.Write("true"); } else { context.Response.Write("false"); } } public bool IsReusable { get { return false; } } }}
功能很简单,但用起来却非常的方便,个人觉得很好,请各位大神不要笑话在下的才疏学浅。
另外实现此效果需要用到JQuery的函数,在此附上JQuery的下载,有需要的朋友拿去。
jQuery源文件
- AJAX异步更改数据库
- AJAX异步更改数据库 .
- AJAX异步更改数据库
- AJAX异步更改数据库
- AJAX异步更改数据库
- AJAX异步请求链接数据库
- Java -- Ajax异步访问数据库内容
- ECharts3 实现 AJAX异步加载 数据库数据
- ajax异步
- ajax异步
- ajax 异步
- ajax 异步
- ajax 异步
- AJAX 异步
- ajax异步
- Ajax 异步
- ajax异步
- Ajax异步
- 编译64位AVRO过程.
- JMS : Java Message Service (Java消息服务)
- 类文件具有错误的版本 50.0,应为 49.0 问题解决
- 解决MFC程序[在静态库中使用 MFC]的问题
- C++--cin.get() 大法
- AJAX异步更改数据库
- 认识单元测试中的打桩
- 关于ListView中,修改Adapter的layout中元素的问题
- Android中打包含有Activity以及资源文件的jar包在工程中调用
- 国际知名大学计算机视觉研究小组列表
- Java 相关
- redhat上安装oralce 11gR2需要的包检查
- 240多个jQuey插件
- 程序员需要更强的沟通协调能力-对普通员工、有效的沟通能力可能比技术能力更重要
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
裙子老吸在腿上怎么办
雪纺静电怎么办快速去
龙猫夏天没空调怎么办
单位没给入社保怎么办
1岁宝宝秋季腹泻怎么办
羊毛坐垫洗烂了怎么办
冬天敷面膜太冷怎么办
敷面膜脸过敏了怎么办
整个上嘴唇肿了怎么办
羊绒围巾洗坏了怎么办
怎么办被月子颗粒骗了
胸贴没有粘性了怎么办
帅t穿束胸过安检怎么办
已经推迟十天了怎么办
我例假推迟十天怎么办
刚结婚就想离婚怎么办
胸小的穿泳衣怎么办
胸下垂应该怎么办17岁
17岁胸部外扩怎么办呢
挂钩粘墙上老掉怎么办
隐形内衣不粘了怎么办
头发染的太浅怎么办
画内眼线晕染怎么办
头发染黑后悔了怎么办
头发染的太黑了怎么办
烫完头发显老怎么办
刚烫的头发太卷怎么办
空气刘海太短了怎么办
空气刘海剪残了怎么办
刘海贴在额头上怎么办
头发太蓬松很厚怎么办
头发很干 梳不通怎么办
甲亢引起的眼突怎么办
亚麻籽油过期了怎么办
手被胶水粘住了怎么办
闷青色发根太黄怎么办
衣服放久了发黄怎么办
衣服压缩后皱了怎么办
爱出褶皱的衣服怎么办
棉麻衣服皱了怎么办
线切割老是断丝怎么办