|
主题: 一个关于复选框的问题,欢迎大家探讨:)
|
 Such a lovely place
职务:普通成员
等级:2
金币:10.0
发贴:573
注册:2001/11/4 21:15:56
|
#12002/11/6 10:24:59
例如我有一个“爱好”的字段,在输入页面有十个复选框,为“音乐”、“体育”、“电脑”等。现在问题是一个字段怎么记录下多选(如果我选五个)?总不能设10个字段吧?我看了周明涛的书,说要写一个函数,查询字符串,可书上没有写出来。希望有兴趣的朋友一起探讨哦。:)
|
 我佛山人
职务:版主
等级:4
金币:16.0
发贴:2269
注册:2002/8/7 15:09:27
|
#22002/11/6 11:38:34
我觉得可以参考生日的: birthday=trim(Request.Form("birthyear"))&"-"&trim(Request.Form("birthmonth"))&"-"&trim(Request.Form("birthday"))
|
 5D荣誉斑竹
职务:普通成员
等级:2
金币:10.0
发贴:710
注册:2001/10/24 18:34:42
|
#32002/11/6 13:00:47
很简单,复选框的名字取成一样的(比如lovebox),把这个复选框记录到数据库的爱好字段,记录就好象“音乐, 体育, 电脑”这样的列表,取出来的时候可以用Split把他们拆分,具体就看你怎么显示了。
|
 Such a lovely place
职务:普通成员
等级:2
金币:10.0
发贴:573
注册:2001/11/4 21:15:56
|
#42002/11/6 13:12:07
是不是如果我选了“音乐”、“电脑”、“体育”三个复选,那么按照小田的做法,在数据库“爱好”字段里内容就是“音乐,电脑,体育”?用逗号分开?还是“音乐电脑体育”?然后在要用的地方用split劈开。要是在显示页面上,还是十个复选框,并且把相应的复选框选中,估计很难吧?:( 本人水平还不足以搞定,请小田指教……
|
 Such a lovely place
职务:普通成员
等级:2
金币:10.0
发贴:573
注册:2001/11/4 21:15:56
|
#52002/11/6 17:53:58
小田,我试过了,如果把复选框名字设为一样,在插入记录服务器行为里就有10个同名的字段,如10个lovebox,都选择插入数据库“爱好”字段。当插入记录时,提示出错“输入目标重复……”,看来不行哩。:(
请问“复选框的名字取成一样的(比如lovebox),把这个复选框记录到数据库的爱好字段,记录就好象“音乐, 体育, 电脑”这样的列表”你说的是怎么实现的呢?
|
 我佛山人
职务:版主
等级:4
金币:16.0
发贴:2269
注册:2002/8/7 15:09:27
|
#62002/11/6 22:59:51
复选框的名字不能一样,在插入数据库之前应该转化一下,就象生日的把年月日边在一起
|
 Such a lovely place
职务:普通成员
等级:2
金币:10.0
发贴:573
注册:2001/11/4 21:15:56
|
#72002/11/6 23:24:34
谢谢我佛山人。我按你的办法试一下,不明白在问你:)
|
 5D荣誉斑竹
职务:普通成员
等级:2
金币:10.0
发贴:710
注册:2001/10/24 18:34:42
|
#82002/11/7 0:47:56
b小调雨后在上个帖子中说 引用: 小田,我试过了,如果把复选框名字设为一样,在插入记录服务器行为里就有10个同名的字段,如10个lovebox,都选择插入数据库“爱好”字段。当插入记录时,提示出错“输入目标重复……”,看来不行哩。:(
请问“复选框的名字取成一样的(比如lovebox),把这个复选框记录到数据库的爱好字段,记录就好象“音乐, 体育, 电脑”这样的列表”你说的是怎么实现的呢?
把复选框名字设为一样,插入记录的时候只要设一个字段就可以了,插入的内容就是:音乐, 体育, 电脑 这样的列表,你可以用Request.Form("lovebox")获取一下看看,是不是“音乐, 体育, 电脑”这样的列表。
|
 Such a lovely place
职务:普通成员
等级:2
金币:10.0
发贴:573
注册:2001/11/4 21:15:56
|
#92002/11/7 13:02:37
小田,我成功啦!
原来我在插入记录时,选了10个同名的复选框,都插入同一字段,当然不行了,现在按你说的,只设一个,立马搞定,嘿嘿……
我佛山人,还是小田的方法比较简单,用同名复选框多选插入同一字段,数据库里该字段显示为:“电脑,体育,音乐”,一个字段搞定。:)在此也谢谢你提供的方法……
|
 Such a lovely place
职务:普通成员
等级:2
金币:10.0
发贴:573
注册:2001/11/4 21:15:56
|
#102002/11/7 13:08:13
不过新的问题又来了:(
我想在修改页面也显示10个复选框,并呈现输入时所选的情况……我知道要用split拆开,然后就不知道啦……小田给点办法啊……先谢过了。
|
 5D荣誉斑竹
职务:普通成员
等级:2
金币:10.0
发贴:710
注册:2001/10/24 18:34:42
|
#112002/11/7 14:25:04
可以写个函数来解决:
<%
'Name:CheckList(vaules,chkList)
'Function:Check the checkbox's state
'Author:xiaotian
'Last update:2002-11-07
Sub CheckList(vaules,chkList)
chkList=Replace(chkList," ","")
if InStr(1,chkList,vaules)>0 then
Response.Write " CHECKED"
else
Response.Write ""
end if
End Sub
%>
下面是一个使用的例子:
<%
'Name:CheckList(vaules,chkList)
'Function:Check the checkbox's state
'Author:xiaotian
'Last update:2002-11-07
Sub CheckList(vaules,chkList)
chkList=Replace(chkList," ","")
if InStr(1,chkList,vaules)>0 then
Response.Write " CHECKED"
else
Response.Write ""
end if
End Sub
%>
<%
Dim loveList
loveList="电脑,美术,体育"
%>
在实际使用中,可以设置 loveList=数据库记录
|
 Such a lovely place
职务:普通成员
等级:2
金币:10.0
发贴:573
注册:2001/11/4 21:15:56
|
#122002/11/7 23:24:19
真是太感谢小田的代码,我马上就试。:) (题外话,要是我也能写这样的函数,建议看什麽书呢?看VB可以吗?有没有asp和vbscript一起教的书啊?)
|
 5D荣誉斑竹
职务:普通成员
等级:2
金币:10.0
发贴:710
注册:2001/10/24 18:34:42
|
#132002/11/8 9:47:49
多去探究原理和方法,多参考优秀的程序,等你对程序的理解和代码的读写有一定程度后,自然就会了,书当然应该买,给你推荐一本: 《Active Server Page 2.0 Unleashed 揭秘》 小田就是看着它成长的:)
|
 Such a lovely place
职务:普通成员
等级:2
金币:10.0
发贴:573
注册:2001/11/4 21:15:56
|
#142002/11/8 13:09:48
哈哈,小田把成长密籍都透露出来了啊:)我也要买一本看看……
还有,我用你的函数成功解决了复选框修改的显示问题,这样我正在编的单位的房地产管理系统中所用到的技术问题全部解决,真是不知道如何感谢。我想只有不断提高自己的水平,来回报本论坛,才是最好的感激。呵呵……
对了,还有就是:chkList=Replace(chkList," ","") 这个语句是起什麽作用的呢?是把空格给去掉吧?空格去掉干什麽呢?不去也能instr吗?
|
 5D荣誉斑竹
职务:普通成员
等级:2
金币:10.0
发贴:710
注册:2001/10/24 18:34:42
|
#152002/11/8 13:45:08
如果你仔细看看checkbox传递过来的参数就知道了,它的列表中是有空格的:
1, 2, 3, 4, 5
Replace(chkList," ","") 去掉了空格也是严谨一点,没别的!
|