主题:  删除记录的问题

hncsckr

职务:普通成员
等级:1
金币:0.0
发贴:24
注册:2005/4/15 16:44:05
#12006/5/26 14:47:54
我想利用checkbox表单,选中后按按钮删除记录,但我不知道checkbox选中以后,是该按按钮删除吗?怎么写代码呢,请版主给予提示



yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#22006/5/26 16:03:19
<form action="" name="del">
<%Set rs= Server.CreateObject("ADODB.Recordset")
rs.open "select * from 表 order by id desc",conn,1,3
do while not rs.eof
if request.form("usertel")=1 then
rs.delete
else%>
<input name='usertell' type='checkbox' onclick="" id="usertell" value=1><%=rs(""usertell)%><br>
<%rs.movenext
rs.update
rs.close
set rs=nothing%>



yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#32006/5/26 16:05:13
以后一个问题不要开两个讨论帖.



hncsckr

职务:普通成员
等级:1
金币:0.0
发贴:24
注册:2005/4/15 16:44:05
#42006/5/26 17:17:27
<!--#include file="conn.asp" -->
<%Set rs= Server.CreateObject("ADODB.Recordset"
rs.open "select * from 表 order by id desc",conn,1,3 for i=1 to rs.pagesize %>
<tr>
<form action="" name="del">
<td align="center">
<% if request.form("usertel"=1 then
rs.delete
rs.update
else%>
<input name='usertell' type='checkbox' onclick="" id="usertell" value=1>
<% end if %>
     </td>
     </form>
rs.close
set rs=nothing%>
我的问题:在CHECOBOX中选中后,没有删除记录,我把上述代码何存在1.ASP文件中,然后
<a href="1.asp">删除记录</a>.
我就是想通过点击某个链接删除记录



yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#52006/5/26 19:30:59
这样改:<a href="khDel.asp?aciton=del&id=<%=rs("id")%>" >删除记录</a>



yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#62006/5/26 19:33:44
然后khDel.asp这样写:
<%if request("action")=del then
Set rs= Server.CreateObject("ADODB.Recordset")
rs.open "select * from 表 where id="&request("id")&" order by id desc",conn,1,3
rs.delete
rs.update
rs.close
set rs=nothing
end if%>



浮尘

职务:普通成员
等级:3
金币:7.0
发贴:1258
注册:2001/11/19 12:41:09
#72006/5/28 22:17:12
删除记录不用那么多东西的,只需要链接和SQL就可以了。
sql="delete tablename where id="+request("id")
objConn.Execute(sql)
就可以了。如果是Access,用delete from



hncsckr

职务:普通成员
等级:1
金币:0.0
发贴:24
注册:2005/4/15 16:44:05
#82006/5/28 23:22:37
1.asp中有如下代码:
<td align="center"> <input name='id' type='checkbox' onclick="" id="id" value=<%= rs("id" %>></td>
del.asp中删除代码是这样写的:
id=request.QueryString("id"
sqlstrDel="Delete From table_name where ID In ("& ID &""
conn.Execute(sqlstrDel)

我遇到的问题是ID值取不到,无法删除,我始终找不到错在那里?请指教啊



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#92006/5/29 11:46:14
首先绑定的checkbox的ID为"delID",执行提交后,分析以下代码
if Request("DelID") <> "" then
  arrDelID = Split(Request("DelID"), ",")
  strDelID = "("
  for i = 0 to UBound(arrDelID)
    if strDelID <> "(" then strDelID = strDelID & ","
	strDelID = StrDelID & arrDelID(i)
  next
  strDelID = strDelID & ")"
  
  sqlDel = "DELETE FROM Article_Subject WHERE SubjectID IN " & strDelID
  conn.Execute sqlDel
end if


非常大鱼

缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
#102006/5/29 13:02:39
蓝鲸在上个帖子中说
引用:
首先绑定的checkbox的ID为"delID",执行提交后,分析以下代码
if Request("DelID") <> "" then
  arrDelID = Split(Request("DelID"), ",")
  strDelID = "("
  for i = 0 to UBound(arrDelID)
    if strDelID <> "(" then strDelID = strDelID & ","
	strDelID = StrDelID & arrDelID(i)
  next
  strDelID = strDelID & ")"
  
  sqlDel = "DELETE FROM Article_Subject WHERE SubjectID IN " & strDelID
  conn.Execute sqlDel
end if



为什么要先Split再组合?
直接"delete from table where id in("&Request.Form("delid"&""



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#112006/5/29 15:04:49
接受,
不好意思,这代码是以前做的,没细想,这办法太笨了


非常大鱼

hncsckr

职务:普通成员
等级:1
金币:0.0
发贴:24
注册:2005/4/15 16:44:05
#122006/5/30 9:29:28
我在1.asp页面中表单是这样的:
<form action="" method="post" ><td align="center">
<input name='delid' type='checkbox' onclick="" id="delid" value="<%= rs("id" %>"></td></form>
但我并没有提交按钮,只是在页面某处设置了一个链接
<td align="center"><a href="2.asp.asp">删除记录</a></td>
然后在2.asp中的删除代码是这样写的:
DelID = Request("DelID"
sqlDel = "DELETE FROM zongbiao WHERE id IN " & DelID
conn.Execute sqlDel
现在问题仍然是ID的值取不到,无法删除.
我反复看代码,问题不是在2.asp中,肯定是在1.asp中,是不是form中checkbox的ID值非要设一个提交按钮才能被2.asp取到表单中的ID值呢?



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
#132006/5/30 11:25:40
form需要submit才会提交数据.这个是常识,而不是想当然.
如果你非要用文字链接.那么用js来提交form