| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4795 人关注过本帖
标题:一个关于动态checkbox取值写入数据库问题(完美解决),谢谢各位!
只看楼主 加入收藏
nicechlk
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:330
专家分:187
注 册:2008-9-6
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:19 
一个关于动态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
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:10 
<form action="?act=ckk" name="from1" id="form1" method="post">
<%for i=1 to 5%>
<input type="checkbox" name="info" id="info" value="<%=i%>"><%=i%>
<%next%>
<input type="submit" value="tijiao">
</form>
<%
if request.queryString("act")="ckk" then
dim ck
ck=split(request.form("info"),",")
for j=0 to ubound(ck)
response.write ck(j)
//这里写字段操作,CHECKBOX的VALUE值已经出来,可以根据这个ID去找到数据库里的ID,并把对应ID的STATE改为TRUE就好了!
next
end if
%>
要哪个取哪个!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-04-23 09:59
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
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:0 
多谢夸奖!你就是那个叫人把显示器烧了,然后获得页面变灰的家伙吧!

写不进数据库?有没有错误提示?
建议你在执行 conn.execute ("update info_product set info_choice=true where id="& i) 以前先输出i看看,是否有值,并注意数据格式(字符型变成整型),你这么聪明,一定可以很快解决问题的!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-04-23 12:52
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
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:0 
有值输出,说明前面没有问题,怎么会更新不了呢?
推测:
1、可能是SQL语句出问题了,info_choice这个字段是-是/否字段吗?
2、打开数据库,在里面用查询方式,单独执行更新看看,看能否正确执行!如果可以正确执行,就得考虑是否SQL执行方式的问题了!
3、你的ASP页面是否使用或包含(include)了这样的语句:on error resume next,如果有,就把它暂时删除,否则即使有问题也不会报错的!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-04-23 13:45
zzy_420
Rank: 4
等 级:业余侠客
威 望:2
帖 子:78
专家分:217
注 册:2009-3-26
收藏
得分:2 

改成如下:主要是单引号的问题:

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 &"'") '这里的引号加上.            
      next
end if

[ 本帖最后由 zzy_420 于 2010-4-24 10:50 编辑 ]
2010-04-23 14:31
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
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:8 
获得所有选中的checkbox?
<script language="javascript">
function Submit_Click()
{
   var selInfo=getSelectedInfo();
   if(selInfo=="")
   {
      alert('你没有选中任何一项,请至少选择一项');
      return false;
   }
   selInfo=selInfo.replace("|","\n");
   alert('选择的项目有'+selInfo+"\n");
}
//获得选中的Info信息
function getSelectedInfo()
{
   if(this.info.length==null)//判断info是否有多个
   {
       //判断info是否选中
       if(this.info.checked)
          return this.info.value;//返回选中的value
       return ""; //未选中返回空
   }
   //多个info的取值循环
   var reVal="";//value字符串临时变量
   for(var i=0;i<this.info.length;i++)
   {
       //判断其中一个是否选中
       if(this.info[i].checked)
          reVal+=this.info[i].value+"|";//选中加入临时变量
   }
   return reVal;//返回临时变量
}
</script>
<%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%>
<input type="button" name="Submit" onClick="Submit_Click();" value="提交">
2010-04-24 12:29
nicechlk
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:330
专家分:187
注 册:2008-9-6
收藏
得分:0 
你好yms,十分感谢!
我对js懂得不多,看的头大
如果不用js方法能行得通不?

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



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

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