注册 登录
编程论坛 ASP技术论坛

复选框是重复的,选中后如何赋值,下面的代码只能赋值给选中的第一个数据

jellva 发布于 2012-02-22 11:48, 1049 次点击
复选框

<form name="form1" method="post" action="update.asp">
<input type="checkbox" name="cid" value="<%=rs("id")%>">'复选框只有一个,是重复的.
[/code]

update.asp页面
程序代码:

<%
cids
= request.Form("cid")
if cids <> "" then
  arr
= split(cids,",")
  
for i=0 to ubound(arr)

 
set rs = server.CreateObject("adodb.RECORDSET")

 sql
= "select * from t_book WHERE id IN(" & cids & ")"

 rs.open sql,conn,
1,3
rs(cid)
=arr(i)‘主要是这里的问题,不加这句还可以赋值给第一个数据,加上这句就没反应了

 rs(
"state")=1

 rs(
"addtime")=now()

 rs.update

 rs.close

 
set rs = nothing
  
next
end if
    Response.Write
"<center>修改成功<br><br><br>"         
    Response.Write
"<a href = index.asp>返回</a>"   
  
%>
5 回复
#2
yms1232012-02-22 12:38
rs(cid)=arr(i)这句明显会引起编译错误或运行时错误,因为cid是字段名的话
rs("cid")=arr(i)应该加上双引号。
#3
jellva2012-02-22 14:06
以下是引用yms123在2012-2-22 12:38:14的发言:

rs(cid)=arr(i)这句明显会引起编译错误或运行时错误,因为cid是字段名的话
rs("cid")=arr(i)应该加上双引号。

呵呵。。对,这个少了双引号。。
不过还是出错,出错提示是:
在对应所需名称或序数的集合中,未找到项目。
#4
jellva2012-02-22 14:09
也是rs("cid")=arr(i)这句出错

ADODB.Recordset 错误 '800a0cc1'

在对应所需名称或序数的集合中,未找到项目。
#5
jellva2012-02-22 14:34
程序代码:
<%dim r‘增加的
cids
= request.Form("cid")
if cids <> "" then
  arr
= split(cids,",")
  
for i=0 to ubound(arr)

 
set rs = server.CreateObject("adodb.RECORDSET")

 sql
= "select * from t_book WHERE id IN(" & cids & ")"

 rs.open sql,conn,
1,3
   rs(
"cid") = arr(i)

 rs(
"state")=1

 rs(
"addtime")=now()

 rs.update

 rs.close

 
set rs = nothing
  
next
end if
    Response.Write
"<center>修改成功<br><br><br>"         
    Response.Write
"<a href = index.asp>返回</a>"   
  
%>

数据库里增加了了cid的字段。。不出错了,但是还是只赋值给选中的第一个数据。。
#6
renxiaoyi2014-04-22 09:32
回复 5 楼 jellva
我也遇到了这个问题 你的解决了吗
1