关于resquset.form问题!在线等

qfacy 2004-08-16 04:52:46
在研究批量记录删除时候!出现几个小问题!不知道我的理解是否正确!请各位高手指教
-----------------------------------------------------------------------------------
<!--#include file="conn.asp"-->
<body>
<%
checkbox=request("checkbox1")
if checkbox<>"" then
set rs=server.CreateObject("adodb.recordset")
sql="delete from user_1 where id in ("&checkbox&")"
rs.open sql,conn,3,3
end if%>
<%
set rs=server.CreateObject("adodb.recordset")
sql="select * from user_1"
rs.open sql,conn,1,1
%>
<form action="index.asp" name="form" method="post">
<table>
<tr>
<td>选择</td>
<td>名字</td>
<td>sex</td>
<td>time</td></tr>
<tr>
<input type="checkbox" name="checkbox1" value="1" checked>
<% do while not rs.eof and not rs.bof%>
<td><input type="checkbox" name="checkbox1" value=<%=rs("id")%>></td>
<td><%=rs("name")%></td>
<td><%=rs("sex")%></td>
<td><%=rs("time")%></td>
</tr>
<% rs.movenext
loop
rs.close
set rs=nothing%>
<td><input type="submit" name="shanchu" value="shanchu"></td>
</table>
</form>
</body>


如果把下段代码
<%
checkbox=request("checkbox1")
if checkbox<>"" then
set rs=server.CreateObject("adodb.recordset")
sql="delete from user_1 where id in ("&checkbox&")"
rs.open sql,conn,3,3

改为
checkbox=resquest.form(1)
if checkbox<>"" then
set rs=server.CreateObject("adodb.recordset")
sql="delete from user_1 where id in ("&checkbox&")"
rs.open sql,conn,3,3
我在改成
checkbox=resquest.form
if checkbox<>"" then
set rs=server.CreateObject("adodb.recordset")
sql="delete from user_1 where id in ("&checkbox(1)&")"
rs.open sql,conn,3,3
都应该是可以的,但是在调试的时候总是提示我‘请求对象, ASP 0105 (0x80004005)
数组索引越界’我错在那?
请问checkbox=resquest.form-----这个checkbox是不是数组?
checkbox=resquest.form(1) -----这个checkbox是不是数组的一个元素?
checkbox=request("checkbox1")----他是一个字符串,可不可以理解也是数组的一个元素和 resquest.form(1) 等价!


...全文
157 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
BlackBabbitt 2004-08-16
  • 打赏
  • 举报
回复
哎~~听不明白,也不懂.

看看代码,长张见识~~ hehe
zltostem 2004-08-16
  • 打赏
  • 举报
回复
checkbox=resquest.form(1)

这样接受过来的变量checkbox的值是 1

再来看sql语句就变成了这样:
"delete from user_1 where id in ('1')"

由于关键字[in]后面需要接多个元素(a,b,c...),所以会报错

改成 "delete from user_1 where id = '1'" 就没问题了
qfacy 2004-08-16
  • 打赏
  • 举报
回复
真心谢谢大家那么热情!!!
zltostem(尘寞) ( ) 信誉:100
你用的是一个for语句一条记录一条记录的删除!
但是现在我搞不懂的是
我把<%checkbox=request("checkbox1")
if checkbox<>"" then
set rs=server.CreateObject("adodb.recordset")
sql="delete from user_1 where id in ("&checkbox&")"
rs.open sql,conn,3,3
改为
checkbox=resquest.form(1)
if checkbox<>"" then
set rs=server.CreateObject("adodb.recordset")
sql="delete from user_1 where id in ("&checkbox&")"
rs.open sql,conn,3,3
时,应该是对的,但是为什么出现
‘请求对象, ASP 0105 (0x80004005)
数组索引越界’
为什么出现此错误!
zltostem 2004-08-16
  • 打赏
  • 举报
回复
checkbox=request("checkbox1")

→这里的"checkbox"实际上什么也不是,不过有趣的是,如果传值画面中的多个[checkbox]中值只选择一个的话,用这句接受的值恰好是所选择[checkbox]的value。如果选择两个以上,这样接过来的值就显示不正常了。

实际上正确的值被保存在[Request.Form("checkbox1")(Request.Form("checkbox1").Count],这么一个数组中

楼主如果想接到画面中选择的每一个[checkbox]的value的话,可以参考以下代码:

<!--#include file="conn.asp"-->
<body>
<%
Dim ingcheckbox
For ingcheckbox = 1 To Request.Form("checkbox1").Count
checkbox= Request.Form("checkbox1")(ingcheckbox)

if checkbox<>"" then
set rs=server.CreateObject("adodb.recordset")
sql="delete from user_1 where id in ("&checkbox&")"
rs.open sql,conn,3,3
end if%>
<%
set rs=server.CreateObject("adodb.recordset")
sql="select * from user_1"
rs.open sql,conn,1,1
%>
<form action="index.asp" name="form" method="post">
<table>
<tr>
<td>选择</td>
<td>名字</td>
<td>sex</td>
<td>time</td></tr>
<tr>
<input type="checkbox" name="checkbox1" value="1" checked>
<% do while not rs.eof and not rs.bof%>
<td><input type="checkbox" name="checkbox1" value=<%=rs("id")%>></td>
<td><%=rs("name")%></td>
<td><%=rs("sex")%></td>
<td><%=rs("time")%></td>
</tr>
<% rs.movenext
loop
rs.close
set rs=nothing%>
<td><input type="submit" name="shanchu" value="shanchu"></td>
</table>
</form>
</body>
<% Next %>
onkey1999 2004-08-16
  • 打赏
  • 举报
回复
晕了
yangyanli 2004-08-16
  • 打赏
  • 举报
回复
先别管是什么错误,sql语句正确了再说其他的!
yangyanli 2004-08-16
  • 打赏
  • 举报
回复
checkbox=resquest.form(1) 是xxx,xxx,xxx,....

checkbox = "('-1'," & replace(checkbox,",","','") & "'-1,")

sql="delete from user_1 where id in " & checkbox
qfacy 2004-08-16
  • 打赏
  • 举报
回复
我把<%checkbox=request("checkbox1")
if checkbox<>"" then
set rs=server.CreateObject("adodb.recordset")
sql="delete from user_1 where id in ("&checkbox&")"
rs.open sql,conn,3,3
改为
checkbox=resquest.form(1)
if checkbox<>"" then
set rs=server.CreateObject("adodb.recordset")
sql="delete from user_1 where id in ("&checkbox&")"
rs.open sql,conn,3,3
时,应该是对的,但是为什么出现
‘请求对象, ASP 0105 (0x80004005)
数组索引越界’
yangyanli 2004-08-16
  • 打赏
  • 举报
回复
checkbox=request("checkbox1")

response.write checkbox
response.end
观测checkbox的结构,然后使用replace做成这样的sql

delete from tb where id in ('id1','id2','id3')
sheng9hhd 2004-08-16
  • 打赏
  • 举报
回复
如果checkbox同名,那么checkbox=resquest.form(1) 是一个字符串吧?

----------------
checkbox=resquest.form(1) 是xxx,xxx,xxx,....
EAGLEXU 2004-08-16
  • 打赏
  • 举报
回复
对,用数组
dim id
dim j
id=request.form("checkbox1")
id=split(id,",")
i=ubound(id)
for j=0 to i
删除语句
next
这样就可以删除所选了
但是本人做过这个,有一个问题没能解决,就是如果要实现跨页删除该如何办呢?
就是这样只能删除该页所选的,如果翻页了就失效了,我想实现翻到下一页在将所要删除的项目打勾同样可以实现删除所选的。
qfacy 2004-08-16
  • 打赏
  • 举报
回复
如果checkbox同名,那么checkbox=resquest.form(1) 是一个字符串吧?
qfacy 2004-08-16
  • 打赏
  • 举报
回复
如果checkbox不同名,那么数组应该如何得到!
sheng9hhd 2004-08-16
  • 打赏
  • 举报
回复
checkbox=resquest.form-----这个checkbox不是数组,返回--〉
控件名=xxx&控件名=xxx&...&Submit=Submit

checkbox=resquest.form(1) -----这个checkbox(如果不同名)是数组的一个元素

checkbox=request("checkbox1")----如果不同名,可以理解也是数组的一个元素和 resquest.form(1) 等价!


skyboy0720 2004-08-16
  • 打赏
  • 举报
回复
这样效率不高,你应该用一条语句完成
delete from 表 where charindex(字段,'"&request.form(....)&"')>0
qfacy 2004-08-16
  • 打赏
  • 举报
回复
哦,那我
checkbox=resquest.form(1) 提取的方法对不对?
zhuomaocn 2004-08-16
  • 打赏
  • 举报
回复
form是集合,不是数组
qfacy 2004-08-16
  • 打赏
  • 举报
回复
恩!这个我知道,能做出这个功能,但是我不是非常理解它,请各位高手详细知道
下面的我有点糊涂!

checkbox=resquest.form-----这个checkbox是不是数组?
checkbox=resquest.form(1) -----这个checkbox是不是数组的一个元素?
checkbox=request("checkbox1")----他是一个字符串,可不可以理解也是数组的一个元素和 resquest.form(1) 等价
dendoll 2004-08-16
  • 打赏
  • 举报
回复
up
zhuomaocn 2004-08-16
  • 打赏
  • 举报
回复
POST方式
checkbox=resquest.form("checkbox1")
GET方式
checkbox=resquest.QueryString("checkbox1")
加载更多回复(1)

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧