再来学习checkbox.

hyj2001 2002-05-06 08:13:04
前一贴请看http://www.csdn.net/expert/topic/700/700011.xml?temp=.5855982.

但是除了用循环外,能不能跟单选框样,例如:
<p align="left"> 性别:
<input type="radio"<%if modify<>"true" or rs("sex") ="男" then Response.Write "checked"%> value="男" name="sex">男
<input type="radio" <%if rs("sex") ="女" then Response.Write "checked"%> name="sex" value="女">女
</p>

把复选框的值也写入数据库.
...全文
9 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hyj2001 2002-05-06
To:tonnycncn(托尼)(stady.51.net)

这样写就取到了值吗?如果没选择的话,那不是会出错,不过我现在用的是addnew方法.其实我比较想用这个的,可我就是实现不了.
回复
wangfei2428 2002-05-06
数组名name改一下名字
回复
wangfei2428 2002-05-06
我只是考虑一下,可能有错误的地方.
假设复选框的字段名为aaa,用户ID为userid,表table1为用户表,table2为选项进行累积表
name=request("aaa")
dim conn
dim connstr
connstr="DBQ="+server.mappath("../../date/usr.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
name=request("name")
sql="insert into table1 (userid,name) values ('"&userid&"','"&name&"')"
conn.execute(sql)
//每一选项进行累积
//定义一个包含所有选项的数组name(n),n为所有选项的数目
dim name(3)
name(1)="aaa"
name(2)="bbb"
name(3)="ccc"
selary=split(name,", ")
for i=0 to ubound(selary)
name=selary(i)
for k=1 to 3
if name=name(k) then
sql="update table2 set count=count+1 where kind='"&name(k)&"' "
conn.execute(sql)
next
next
//table2的结构如下:
kind count(数值型)
aaa 1
bbb 2
ccc 3
如还有不明白的地方,再说
回复
hyj2001 2002-05-06

我的问题主要是在两个方面:

1:数据库会怎么设计?是一个字段还是有多少个选项就有多少个字段,还是只设一个被选中的字段?

2:怎么去写入选中的值?是用一个什么"on"的值,还是写入字符还是....

无论选择哪种方法,都请写出一两句关键代码,其它有关如何取值,连接都不是问题.
回复
超级大笨狼 2002-05-06
连接库已经有人告诉你了,我还有一个办法保证你万无一失,你用vb的ado控件连接该库,(不用写任何代码!)在vb里右键点击ado控件,在创建里连接一个库,然后检测连接成功就会自动生成正确的sql连接语句,拷贝出来用就可以了。我的qq号28963147。不要说你没装vb,那可是咱们这行必备的饭碗工具啊!!

1.指定表名用select * from tb1
2。sql语句用insert into去msdn里面查(在全部文档里面查)
回复
8988 2002-05-06
input 类型的标签,都可以以相同的name命名
1、当Input的name唯一时,可用: valuestr=Request.Form("表单名")获得该表单的value的值,
如:<input type=text name=Text Value="testvalue">
则:Request.Form("Text")的值为testvalue

2、当Input的name不唯一时,可用n=Request.Form("表单名").Count来获得同名有效表单的数量,用x=Request.Form("表单名")(i)来获得每个表单中value的值(i=1,2,3....n)
如:
<input type="radio" checked name="sex" value="男">
<input type="radio" name="sex" value="女">
这里有两个name="sex"的radio单选框,由于每次只有一个有效,所以可用第一种方法获得value的值,即:x=Request.Form("sex")
又如:
<input type="checkbox" checked name="script" value="VBscript">
<input type="checkbox" name="script" value="Javascript">
这里同样有两个name="script"的复选框,但每次可以选择0--2个不定,所以,首先用n=Request.Form("script").Count求出实际有效表单数量,具体提取过程如下:
n=Request.Form("script").Count
if n>0 then
dim script()
redim script(n)
for i=1 to n
script(i)=Request.Form("script")(i)
next
end if


回复
hyj2001 2002-05-06
很简单,把选项写入access数据库,无论你用什么方法去写入一个什么样的数据库,只要代码能运行成功就行,当然这些写入的数据必须能比较方便的取出用的,你能想出一种方法即一百分,想出N种方法即N个一百分.前面已经有一种方法啦,可以参考.
回复
wangfei2428 2002-05-06
您的意图是什么
回复
hyj2001 2002-05-06
???
我知道怎么样去取值,可我就是不知道怎么去把值写入一个怎么排的数据库,请不要把插入数据库的代码省略好吗?
举例如下:
<html><body>
<form action="test.asp" method="post" ID="Form1">
<table><tr><td>
<input type="checkbox" name="checkbox" value="aaa">aaa
</td><td>
<input type="checkbox" name="checkbox" value="bbb">bbb
</td><td>
<input type="checkbox" name="checkbox" value="ccc">ccc
</td><td>
<input type="checkbox" name="checkbox" value="ddd">ddd
</td><td>
<input type="checkbox" name="checkbox" value="eee">eee
</td><td>
<input type="checkbox" name="checkbox" value="fff">fff
</td></tr>
<tr><td colspan="3">
<input type="submit">
</td></tr>
</table></form></body></html>
<%
for each i in Request.Form("checkbox")
m=request.Form(i)%>
<p algin=center><%response.write m %></p>
<%next%>
回复
wangfei2428 2002-05-06
可以,但是数据库里的值是一个用逗号和空格隔开的值如:
aaa,bbb...等.
假设复选框的字段名为aaa
name=request("aaa")
.....
//数据库插入数据库的代码
回复
tonnycncn 2002-05-06
不会吧,这个问题应不难,
你就用最简单的方法,一个选项设一个字段,
如下:
name1=Request.Form("checkbox")(1)
name2=Request.Form("checkbox")(2)
name3=Request.Form("checkbox")(3)
sql="insert into table1 (userid,name1,name2,name3) values ('"&userid&"','"&name1&"','"&name2&"','"&name3&"')"
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2002-05-06 08:13
社区公告
暂无公告