百独托管7500 紫田网络超高转化播放器收cps[推荐]速盾CDN 免实名免备防屏蔽阿里云 爆款特卖9.9元封顶提升alexa、IP流量7Q5团队
【腾讯云】中小企福利专场【腾讯云】多款产品1折起高防 随时退换 好耶数据小飞国外网赚带你月入万元炎黄网络4H4G10M 99每月
香港带宽CN2/美国站群优惠中客数据中心 服务器租用联盟系统移动广告平台 中易企业专场腾讯云服务器2.5折九九数据 工信部正规资质
腾讯云新用户大礼包代金券高价收cpa注册量高价展示【腾讯云】2核2G/9.93起租服务器找45互联 随时退换阿里云 短信服务 验证秒达

[其它内容] [原创]实现显示、添加、修改、删除的最简单的方法及实例 [复制链接]
查看:8819 | 回复:18

头像被屏蔽

1

主题

1746

帖子

2092

积分

落伍者(两全齐美)

专业灌水员

Rank: 2

贡献
357
鲜花
0
注册时间
2005-4-13
发表于 2005-12-31 00:05:17 | |阅读模式 来自 中国青海西宁
本帖最后由 小琦 于 2012-6-20 09:20 编辑

这段时间工作比较忙,很少来落伍发表技术贴子了,今天挤时间把我工作时写的一个自己感觉有价值的东西整理出来与大家分享。谢管理员支持,谢谢!
  1. 文章标题:实现显示、添加、修改、删除的最简单的方法及实例
  2. 发布时间:2005年12月30日 晚
  3. 文章作者:翟振凯 (小琦)
  4. 交流方式:
  5. 个人站:http://www.xiaoqi.net   
  6. 商业站:http://www.jinxiang114.com
  7. 论坛站:http://www.jinxiang114.com/bbs
  8. QQ:53353866 22336848
  9. 关于本文:
  10.         本着互联网共享主义精神,特写此文献给建站新手,授人以鱼,不如授人以渔,有人看完后,可能会觉得代码不太完善,因为发表本文的目地,是向大家介绍实现的原理,而不是给大家一套完整的程序,希望大家看完此文,能够从中得到些帮助和启发。

  11.         本文用最精简的实例介绍了一种实现显示、添加、修改、删除的比较简便的方法,虽然是以ASP例子介绍,但同样适用于PHP、JSP、ASP.NET等语言。文中用到了javascript脚本,大家也可从中学到部分的javascript知识。

  12.         因为近几天工作太忙,就不祥细的写原理文章了,我在代码里面写的注释非常清楚,相信懂点网页编程的朋友应该都能够看懂。

  13. 声明:希望各位朋友转载时,不要把原有作者版权去掉,谢谢合作。
  14.          由于本人写作水平有限,写的不好的地方,还请大家多多包涵,如要批评或意见,请加我QQ。
复制代码
以下正文开始:

功能介绍:
平时很多人至少需要做三个表单才能实现数据的显示、添加、修改、删除,本文讲的是只用一个添加表单,就可实现数据的显示、添加、修改、删除功能。用此方法写程序时,至少可以省两倍的精力。

实现例子:

例子说明:

  1. 数据库名:db.mdb
  2. 表名:pub_doc
  3. 字段:id和memo1-----memo30 (多少个字段大家可以自己设置)

复制代码
公用部分:
公用部分,可以存成单个文件,用include调用。

  1. <%
  2. '数据库连接
  3. db="db.mdb"
  4. set conn=server.createobject("adodb.connection")
  5. conn.open "provider=microsoft.jet.oledb.4.0;data source="& server.mappath(db)

  6. '发布时间:2005年12月30日 晚
  7. '文章作者:翟振凯 (小琦)
  8. '个人站:http://www.xiaoqi.net   
  9. '技术站:http://www.iisvs.net
  10. '商业站:http://www.iisvs.com
  11. '论坛站:http://www.tdqy.com
  12. 'QQ:53353866 22336848

  13. '添加数据函数
  14. function add_form(sl)'添加数据函数

  15. 'response.write request("act")
  16. 'response.end

  17. if request("act")="add_save" and sl<>"" then


  18. '------------------生成SQL语句----------------小琦

  19. '--------循环memo
  20.                         For i = 1 To sl
  21.                                 zd_name=zd_name&"memo"&i&","
  22.                         if request("memo"&i&"")<>"" then                               
  23.                                 zd_value=zd_value&"'"&request("memo"&i&"")&"'"&","
  24.                         else
  25.                                 zd_value=zd_value&"'"&null&"'"&","
  26.                         end if                       
  27.                         next
  28. '//--------循环memo


  29. '去掉最后的“,”
  30. zd_name=left(zd_name,len(zd_name)-1)
  31. zd_value=left(zd_value,len(zd_value)-1)

  32. sql="Insert into pub_doc("&zd_name&")values("&zd_value&")"

  33. '//------------------生成SQL语句----------------小琦
  34. conn.execute(sql)
  35. response.write "添加数据成功!"
  36. Response.End
  37. end if

  38. end function



  39. '修改数据函数
  40. function edit_form(sl)'修改数据函数

  41. if request("id")<>"" and request("act")="edit_save" and sl<>"" then


  42. '------------------生成SQL语句----------------小琦
  43.                
  44. '--------循环memo
  45.                 zd_name="" '字段名子
  46.                         For i = 1 To sl
  47.                                 zd_name=zd_name&"memo"&i&"="
  48.                         if request("memo"&i&"")<>"" then                               
  49.                                 zd_name=zd_name&"'"&request("memo"&i&"")&"'"&","
  50.                         else
  51.                                 zd_name=zd_name&"'"&null&"'"&","
  52.                         end if                       
  53.                         next
  54. '//--------循环memo

  55. '去掉最后的“,”
  56. zd_name=left(zd_name,len(zd_name)-1)

  57. '//------------------生成SQL语句----------------小琦

  58. sql="Update pub_doc set "&zd_name&" where id="&request("id")&""
  59. conn.execute(sql)

  60. response.write "修改成功!"

  61. Response.End()
  62. end if
  63. end function




  64. function read_edit_form(sl)'修改前读取数据函数
  65. if request("id")<>"" and request("act")="edit" and sl<>"" then'读取要修改的数据

  66. '------------------生成SQL语句----------------小琦
  67.                         zd_name="" '字段名子
  68. '--------循环memo
  69.                         For i = 1 To sl
  70.                                 zd_name=zd_name&"memo"&i&","       
  71.                         next
  72. '//--------循环memo

  73. '去掉最后的“,”
  74. zd_name=left(zd_name,len(zd_name)-1)

  75. sql="select top 1 "&zd_name&" from pub_doc where id="&request("id")&""
  76. '//------------------生成SQL语句----------------小琦
  77. set rs = conn.execute(sql)'查询

  78. response.write "<script language=javascript>"'写javascript的脚本
  79. response.write "function read_data(){"'

  80. '--------循环赋值
  81.                         for each i in split(zd_name,",")
  82.                                 response.write "frm."&i&".value="""&Replace(Replace(Replace(rs(i)&"||",chr(13),"\n"),chr(10),"\n"),"||","")&""";"'
  83.                         next
  84. '//--------循环赋值

  85. response.write "}</script>"

  86. end if
  87. end function




  88. function read_form(sl)'读取数据函数
  89. if request("id")<>"" and request("act")="" and sl<>"" then'读取要查看的数据

  90. '------------------生成SQL语句----------------小琦
  91. '--------循环memo
  92.                         For i = 1 To sl
  93.                                 zd_name=zd_name&"memo"&i&","       
  94.                         next
  95. '//--------循环memo

  96. '去掉最后的“,”
  97. zd_name=left(zd_name,len(zd_name)-1)

  98. sql="select top 1 "&zd_name&" from pub_doc where id="&request("id")&""
  99. '//------------------生成SQL语句----------------小琦
  100. set rs = conn.execute(sql)'查询

  101. response.write "<sc"+"ript language=javascript>"'写javascript的脚本
  102. response.write "function read_data(){"'
  103. '--------循环赋值
  104.                         for each i in split(zd_name,",")
  105.                         if rs(i)="" then kongge=" "'如果内容为空,则用空格代替
  106.                                 response.write "frm."&i&".parentElement.innerText="""&rs(i)&kongge&""";"'
  107.                         next
  108. '//--------循环赋值
  109. response.write "}</scr"+"ipt>"
  110. end if
  111. end function


  112. function del()'删除数据

  113. if request("id")<>"" and request("act")="del" then

  114. conn.execute("Delete from pub_doc where id="&request("id")&" ")
  115. response.write "删除成功!"
  116. response.end

  117. end if

  118. end function


  119. function xiaoqi_end()
  120. if request("id")<>"" and request("act")="" then response.write "<sc"+"ript language=javascript>frm.save.removeNode(true);read_data()</sc"+"ript>"
  121. if request("id")<>"" and request("act")="edit" then response.write "<sc"+"ript language=javascript>read_data()</sc"+"ript>"
  122. session("act")=""
  123. end function

  124. function get_act(sl)
  125. add_form       sl
  126. edit_form      sl
  127. read_edit_form sl
  128. read_form      sl
  129. del
  130. end function

  131. '设置动作
  132. if request("act")="add" then session("act")="add_save"
  133. if request("act")="edit" then session("act")="edit_save"
  134. %>

复制代码
调用实例


  1. <%get_act("26")‘使用了26个字段%>
  2. <% if request("act")<>"" or request("id")<>"" then’如果不是显示列表页面%>

  3. <p> </p>
  4. <form method="POST" action="index.asp" name="frm">
  5.         <div align="center">
  6.                 <table border="1" width="600" id="table2" bordercolorlight="#000000" cellspacing="0" cellpadding="0" bordercolordark="#FFFFFF" style="text-align: center">
  7.                         <tr>
  8.                                 <td width="149">数据表</td>
  9.                                 <td width="149"><input type="text" name="memo1"></td>
  10.                                 <td width="150"><input type="text" name="memo2"></td>
  11.                                 <td width="150"><input type="text" name="memo3"></td>
  12.                         </tr>
  13.                         <tr>
  14.                                 <td width="149"><input type="text" name="memo4"></td>
  15.                                 <td width="149"><input type="text" name="memo7"></td>
  16.                                 <td width="150"><input type="text" name="memo6"></td>
  17.                                 <td width="150"><input type="text" name="memo5"></td>
  18.                         </tr>
  19.                         <tr>
  20.                                 <td width="149"><input type="text" name="memo9"></td>
  21.                                 <td width="149"><input type="text" name="memo10"></td>
  22.                                 <td width="150"><input type="text" name="memo11"></td>
  23.                                 <td width="150"><input type="text" name="memo12"></td>
  24.                         </tr>
  25.                         <tr>
  26.                                 <td width="149"><input type="text" name="memo16"></td>
  27.                                 <td width="149"><input type="text" name="memo15"></td>
  28.                                 <td width="150"><input type="text" name="memo14"></td>
  29.                                 <td width="150"><input type="text" name="memo13"></td>
  30.                         </tr>
  31.                         <tr>
  32.                                 <td width="149"><input type="text" name="memo17"></td>
  33.                                 <td width="149"><input type="text" name="memo18"></td>
  34.                                 <td width="150"><input type="text" name="memo19"></td>
  35.                                 <td width="150"><input type="text" name="memo20"></td>
  36.                         </tr>
  37.                         <tr>
  38.                                 <td width="149"><input type="text" name="memo24"></td>
  39.                                 <td width="149"><input type="text" name="memo23"></td>
  40.                                 <td width="150"><input type="text" name="memo22"></td>
  41.                                 <td width="150"><input type="text" name="memo21"></td>
  42.                         </tr>
  43.                         <tr>
  44.                                 <td width="149"><input type="text" name="memo25"></td>
  45.                                 <td width="149"><input type="text" name="memo26"></td>
  46.                                 <td width="150"><input type="text" name="memo8"></td>
  47.                                 <td width="150"><input type="submit" value="提交" name="save"></td>
  48.                         </tr>
  49.                 </table>
  50.         </div>
  51. <input type="hidden" name="id" value="<%=request("id")%>">
  52. <input type="hidden" name="act" value="<%=session("act")%>">
  53. </form>
  54. <p> </p>

  55. <%
  56. xiaoqi_end()
  57. else%>

  58. <p align="center"><a href="?act=add">添加</a></p>
  59. <div align="center">
  60.         <table border="1" width="600" id="table1" bordercolorlight="#000000" cellspacing="0" cellpadding="0" bordercolordark="#FFFFFF" style="text-align: center">
  61.                 <tr>
  62.                         <td width="142">字段1</td>
  63.                         <td width="142">字段2</td>
  64.                         <td width="143">字段3</td>
  65.                         <td width="63">查看</td>
  66.                         <td width="63">修改</td>
  67.                         <td width="63">删除</td>
  68.                 </tr>
  69. <%
  70. set rs=server.createobject("adodb.recordset")  
  71. sql = "select * from pub_doc order by id desc "
  72. rs.open sql,conn,1,1
  73. do while not rs.eof
  74. %>               
  75.                 <tr>
  76.                         <td width="142"> <%=rs("memo1")%></td>
  77.                         <td width="142"> <%=rs("memo2")%></td>
  78.                         <td width="143"> <%=rs("memo3")%></td>
  79.                         <td width="63"><a href="?id=<%=rs("id")%>">查看</a></td>
  80.                         <td width="63"><a href="?id=<%=rs("id")%>&act=edit">修改</a></td>
  81.                         <td width="63"><a href="?id=<%=rs("id")%>&act=del">删除</a></td>
  82.                 </tr>
  83. <%
  84. rs.MoveNext                                             
  85. loop %>
  86.         </table>
  87. </div>
  88. <%end if%>

复制代码
再给大家一个我原创的用javascript将文本框转换为文本的例子,相信很多人都会用到。
大家存成html文件打开即可看到效果。
原理:从文本框中取值,把值赋于文本框的父对象。

  1. <script language=javascript>
  2. function read_data(){
  3. frm.memo1.parentElement.innerText="1";
  4. frm.memo2.parentElement.innerText="2";
  5. frm.memo3.parentElement.innerText="3";
  6. }</script>

  7. <p> </p>
  8. <form method="POST" action="index.asp" name="frm">
  9. <div align="center">
  10. <table border="1" width="600" bordercolorlight="#000000" cellspacing="0" cellpadding="0" bordercolordark="#FFFFFF" style="text-align: center">
  11. <tr>
  12. <td width="149">数据表</td>
  13. <td width="149"><input type="text" name="memo1"></td>
  14. <td width="150"><input type="text" name="memo2"></td>
  15. <td width="150"><input type="text" name="memo3"></td>
  16. </tr>
  17. </table>
  18. <p><input type="submit" value="提交" name="save"></div>
  19. </form>
  20. <p> </p>

  21. <script language=javascript>frm.save.removeNode(true);read_data()</script>

复制代码
演示:http://www.xiaoqi.net/test/1/index.asp

附件:asp版完整实例代码+数据库

评分

参与人数 1积分 +20 收起 理由
clinch + 20

查看全部评分

签名被屏蔽
头像被屏蔽

1

主题

1746

帖子

2092

积分

落伍者(两全齐美)

专业灌水员

Rank: 2

贡献
357
鲜花
0
注册时间
2005-4-13
 楼主| 发表于 2005-12-31 00:13:12 | 来自 中国青海西宁
这么长的代码都是我一个一个的写的。。。
希望能得到大家的认同。
签名被屏蔽

346

主题

1万

帖子

1万

积分

落伍者(四季发财)

管理员

Rank: 4

贡献
0
鲜花
21
注册时间
2005-3-27

落伍手机绑定

发表于 2005-12-31 00:17:14 | 来自 中国陕西西安
支持  ^_^
头像被屏蔽

1

主题

1746

帖子

2092

积分

落伍者(两全齐美)

专业灌水员

Rank: 2

贡献
357
鲜花
0
注册时间
2005-4-13
 楼主| 发表于 2005-12-31 00:20:36 | 来自 中国青海西宁
感谢大家的支持。。。

也感谢落伍。。。
签名被屏蔽

164

主题

2万

帖子

1万

积分

落伍斑竹

dfsdfdsafa

Rank: 8Rank: 8

贡献
64
鲜花
69
注册时间
2003-11-10
发表于 2005-12-31 08:19:35 | 来自 中国广东广州
虽然我看不懂,但是这个比较简单,用.net很容易实现这样的操作
落伍禁止黄赌毒签名违规签名,请注意规则,违规永禁。

0

主题

1002

帖子

732

积分

保护或锁定(状态异常,请联系客服)

贡献
0
鲜花
0
注册时间
2005-10-8
发表于 2005-12-31 08:52:44 | 来自 中国广东东莞
收下了
头像被屏蔽

13

主题

2480

帖子

1781

积分

落伍者(两全齐美)

Rank: 2

贡献
1125
鲜花
3
注册时间
2004-4-5
发表于 2005-12-31 09:03:56 | 来自 中国辽宁沈阳
使用数组会更合适些。
适当的调整缩进、增加空格符、注释使用一个统一的格式 代码会更加易读些。

6

主题

4044

帖子

282

积分

落伍者(一心一意)

Rank: 1

贡献
0
鲜花
0
注册时间
2002-5-29
发表于 2005-12-31 09:17:31 | 来自 中国海南海口
技术的要顶
头像被屏蔽

1

主题

728

帖子

1772

积分

落伍者(两全齐美)

Rank: 2

贡献
849
鲜花
0
注册时间
2005-2-1
发表于 2005-12-31 09:25:42 | 来自 中国山东威海
写个留言本就OK了.
这个就都会了.
想知道php的.

41

主题

1万

帖子

1万

积分

落伍者(四季发财)

无党派人士

Rank: 4

贡献
1154
鲜花
3
注册时间
2004-3-21

QQ绑定

发表于 2005-12-31 09:40:54 | 来自 中国湖南益阳
顶一下
论坛客服/商务合作/投诉举报:2171544 (QQ)
落伍者创建于2001/03/14,本站内容均为会员发表,并不代表落伍立场!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
落伍官方微信:2030286 邮箱:(djfsys@gmail.com|tech@im286.com)
© 2001-2014

浙公网安备 33060302000191号

浙ICP备11034705号 BBS专项电子公告通信管[2010]226号

  落伍法律顾问: ITlaw-庄毅雄

手机版|找回帐号|不能发帖?|Archiver|落伍者

GMT+8, 2024-6-16 09:53 , Processed in 0.144093 second(s), 39 queries , Gzip On.

返回顶部