| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4795 人关注过本帖
标题:一个关于动态checkbox取值写入数据库问题(完美解决),谢谢各位!
取消只看楼主 加入收藏
nicechlk
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:330
专家分:187
注 册:2008-9-6
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:10 
一个关于动态checkbox取值写入数据库问题(完美解决),谢谢各位!
有一动态checkbox作如下循环:
<%do while not rs.eof%>
<input type="checkbox" name="info" value="yes" <%if rs("state")=true then response.write "checked" end if%>><%=rs("in_name")%>
<%rs.movenext
next%>

其中,字段state是布尔型,表示是否选中;字段in_name是项目名称。
请教如何获取点选过的checkbox值,同时将值(true/false)写入到state字段?

[ 本帖最后由 nicechlk 于 2010-4-24 21:14 编辑 ]
搜索更多相关主题的帖子: checkbox 数据库 动态 
2010-04-22 23:55
nicechlk
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:330
专家分:187
注 册:2008-9-6
收藏
得分:0 
楼上的方法很好,赞一个。
不过,这个id取出来写不进数据库,不知为何?
conn.execute ("update info_product set info_choice=true where id="&i)

莫以善小而不为,莫以恶小而为之!
2010-04-23 12:05
nicechlk
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:330
专家分:187
注 册:2008-9-6
收藏
得分:0 
嘿嘿。。。烧显示器这事还让你记在心上,实在不好意思。

没有错误提示,代码如下:
dim action,var,var1
action=request.QueryString("action")
if action="ti" then   
    var=request.Form("info")
    var1=split(var,",")
    var1=cint(var1)    '转换数字型;   
        for i=0 to ubound(var1)
            response.Write var1(i)   '输出正确;
            conn.execute ("update info_product set info_choice=true where id="&i)    '所有值都写入了true,貌似where没用;
        next
end if

莫以善小而不为,莫以恶小而为之!
2010-04-23 13:29
nicechlk
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:330
专家分:187
注 册:2008-9-6
收藏
得分:0 
dim action,var,var1
action=request.QueryString("action")
if action="ti" then   
    var=request.Form("info")
    var1=split(var,",")
    var1=cint(var1)    '转换数字型;   
        for i=0 to ubound(var1)
            response.Write var1(i)   '输出正确;
            conn.execute ("update info_product set info_choice=true where id="&i)    '所有值都写成了true,貌似where没起作用;
            conn.execute ("update info_product set info_choice=true where id="&var1(i))   '故障依然
            conn.execute ("update info_product set info_choice=true where id='"&i&"'")   '故障依然
            conn.execute ("update info_product set info_choice=true where id='"&var1(i)&"'")   '故障依然
            sql="select * from info_product where id="  '以上四种方式作为条件
            rs.open sql,conn,1,3
            rs("info_choice")=true
            rs.update            '故障依然;

        next
end if
崩溃中。。。。。
执行中没有任何错误提示,info_choice字段为布尔型,运行环境win7 旗舰版(貌似跟系统关系不大吧?)

[ 本帖最后由 nicechlk 于 2010-4-24 12:04 编辑 ]

莫以善小而不为,莫以恶小而为之!
2010-04-24 12:02
nicechlk
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:330
专家分:187
注 册:2008-9-6
收藏
得分:0 
你好yms,十分感谢!
我对js懂得不多,看的头大
如果不用js方法能行得通不?

莫以善小而不为,莫以恶小而为之!
2010-04-24 14:27
nicechlk
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:330
专家分:187
注 册:2008-9-6
收藏
得分:0 
恩,很多时候用js实现起来的确很方便,也很强大。
可是js的代码也的确绞人,尤其新手

另外,2楼的思路也是很可取的,就是到最后一步行不通了,不知为何?本着技术是严谨的这个态度让我整理一下思路:
1,首先,通过rs.open "select * from info_product",conn,1,1 查询,
    <%if not (rs.eof and rs.bof) then
        for i=1 to rs.recordcount
            if rs.eof then
                exit for
            end if
            response.write rs("info_name")%>
    <input type="checkbox" name="info" value="<%=i%>">
    <%rs.movenext
        next
        rs.close
    end if%>   '到这儿是没问题的,一共有6条记录。
<input type="submit" value="确认">
2,然后对获取checkbox的值,并作处理。
<%dim var,var1
var=request.form("info")
var1=split(var,",")
for i=0 to ubound(var1)
    response.write var1(i)  '测试结果是:如果全选,则1 2 3 4 5 6,或者部分,1 3 5 ,这也是没问题的,
    set rs=conn.execute ("select * from info_product where id="&var1(i))   '此处做测试,用条件查询;
        do while not rs.eof        
            response.write rs("id") "&" rs("info_name")
        rs.movenext
        loop         '测试成功,可以按照此条件查询到结果;
        rs.close
    conn.execute ("update info_product set info_choice=true where id="&var1(i))  '为何全部都更新为true?并未按条件执行。
next%>

[ 本帖最后由 nicechlk 于 2010-4-24 19:36 编辑 ]

莫以善小而不为,莫以恶小而为之!
2010-04-24 18:09
nicechlk
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:330
专家分:187
注 册:2008-9-6
收藏
得分:0 
不好意思朋友们,问题基本解决。
其实上面所述之方法是可行的,更新其实是对的。
其原因如下:
conn.execute ("update info_product set info_choice=true where id="&var1(i))  这条语句只更新点选过的checkbox,未选的并没有做改变,因此,需要在for循环头部先清空所有info_choice的值,即conn.execute("update info_product set into_choice=false"),之后再执行更新就可以了。
另外,在点击确定之后,调用了form表单的action=" ?action=ti"执行的,不知为何checkbox所在的form表单并未刷新,从而造成错觉,以为更新无效。。。真是郁闷。
正琢磨如何在点击确定之后能让页面刷新。。。。


[ 本帖最后由 nicechlk 于 2010-4-24 19:38 编辑 ]

莫以善小而不为,莫以恶小而为之!
2010-04-24 19:36
nicechlk
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:330
专家分:187
注 册:2008-9-6
收藏
得分:0 
2,然后对获取checkbox的值,并作处理。
<%dim var,var1
var=request.form("info")
var1=split(var,",")
conn.execute ("update info_product set info_choice=flase) '先执行所有值均为否的操作;
for i=0 to ubound(var1)
    conn.execute ("update info_product set info_choice=true where id="&var1(i))
next
response.write "<script>alert('操作成功!');location.href='product_ClassManager.asp';</script>" '给个提示同时刷新页面;
%>
至此,问题完美解决,谢谢各位兄弟!同时给依然有此问题的朋友做一参考。

莫以善小而不为,莫以恶小而为之!
2010-04-24 21:21
nicechlk
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:330
专家分:187
注 册:2008-9-6
收藏
得分:0 
2,然后对获取checkbox的值,并作处理。
<%dim var,var1
var=request.form("info")
var1=split(var,",")
conn.execute ("update info_product set info_choice=flase) '先执行所有值均为否的操作;
for i=0 to ubound(var1)
    conn.execute ("update info_product set info_choice=true where id="&var1(i))
next
response.write "<script>alert('操作成功!');location.href='product_ClassManager.asp';</script>" '给个提示同时刷新页面;
%>
至此,问题完美解决,谢谢各位兄弟!同时给依然有此问题的朋友做一参考。

莫以善小而不为,莫以恶小而为之!
2010-04-24 21:23
nicechlk
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:330
专家分:187
注 册:2008-9-6
收藏
得分:0 
咋提交了2遍?

莫以善小而不为,莫以恶小而为之!
2010-04-24 21:24
快速回复:一个关于动态checkbox取值写入数据库问题(完美解决),谢谢各位!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033339 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved