标题:请问如何把checkbox参数用作sql语句中的查询要求啊????
只看楼主
who_young
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-10-19
结帖率:50%
已结贴  问题点数:20 回复次数:5 
请问如何把checkbox参数用作sql语句中的查询要求啊????
想了很久没想出来...

这是前台代码,本想是通过checkbox把要分成一组的学生学号传递到后台,然后作为sql语句IN(...)的查询匹配条件,用的数据库是SQLSERVER2000的

但是checkbox传递过去的参数是字符串...比如 “1,5,9,6,87,...0” 这样

而数据库中的字段是int型,所以总是不匹配...

能把checkbox的参数全部变成int的啊?试过了Cint 不行...

然后试过了用数组还是不行...

哪位知道的朋友指点一下吧,小生感激不尽了!!
<form action="admin_array_check.asp" method="post">
                <input type="submit" value="分组">
                <table>
                    <tr>
                        <td>学号</td>
                        <td>学生姓名</td>
                    </tr>
                    <% do while not rs.eof %>
                    <tr>
                        <td><input type="checkbox" name="check" value="<%= rs("sid")%>"><%= rs("sn")%></td>
                        <td><%= rs("name")%></td>
                    </tr>
                    <%
                        rs.movenext
                        loop
                        
                        rs.close
                        set rs=nothing
                    %>
              </table>
 </form>




后台的代码:

<body>
    <%
        dim checknum
        checknum = request.Form("check")
        
        
        dim chk(9)
            for i=0 to UBound(split(checknum,","))
            chk(i)=Cint(split(checknum,",")(i))
        next
        
        
        
        set rs=Server.CreateObject("ADODB.Recordset")'有参数
        sql="select * from student where sid IN("&chk(0),chk(1),chk(2),chk(3),chk(4),chk(5)&")"
        rs.open sql,conn,2,3
    %>
    <div>
    <form action="admin_array_back.asp" method="post">
        请确认小组成员<br />
        <textarea name="members" rows="100">
            <%
                do while not rs.eof
                    
                    response.Write(rs("name"))

                rs.movenext
                loop
            %>
        </textarea>
        <br />
        请输入小组名称
        <br />
        <input type="text" name="group_name" />
        
        <input type="submit" value="确认分组">
        
    </form>
    </div>

</body>



搜索更多相关主题的帖子: 数据库 字符串 朋友 
2011-02-23 11:36
hams
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:18
帖 子:912
专家分:3670
注 册:2008-7-30
得分:7 
不难呀,关键是你要清楚这个思路,
一步步来实现
比如,接收到的数据如何整理
再把整理的数据去查询

俺不高手,俺也是来学习的。
俺的意见不一定就对,当你不认同时请点忽视按钮。
当走到十字路口不知该如何走时,可在论坛问下路,但你若希望别人能一路把你送到目的地,显然是不现实的,因为别人也有自己要走的路。
2011-02-23 14:49
tandezhong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:31
专家分:118
注 册:2011-2-11
得分:7 
回复 楼主 who_young






这是我写的删除..    希望对你有帮助..

[ 本帖最后由 tandezhong 于 2011-2-23 15:27 编辑 ]
2011-02-23 15:25
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
得分:7 
<form action="b.asp?act=cha" method="post">
                <input type="submit" value="查询">
                <table>
                    <tr>
                        <td>学号</td>
                        <td>学生姓名</td>
                    </tr>
                    <% For i=1 To 3  %>
                    <tr>
                        <td><input type="checkbox" name="check" value="a<%=i%>"></td>
                        <td>查询参数<%=i%></td>
                    </tr>
                    <%
                    next
                    %>
              </table>
</form>

<%
If request.querystring("act")="cha" Then
  check=request.Form("check")//返回一个选择了几个的checkbox的值的字符串,中间用,分割!
  arr=Split(check,",")
For i=0 To UBound(arr)
response.write "您选择的checkbox,第"&i&"个的值是"&arr(i)&"<br/>"
next
End if
%>

参照一下这个代码,其实按照3楼的也是可以的。当然有的时候如果我们不一定需要通过数据库的话,就像上面这样就可以了!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2011-02-23 17:29
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
得分:0 
楼主的后台代码可以按照如下进行修改:
<body>
    <%
        dim checknum
        checknum = request.Form("check")
        set rs=Server.CreateObject("ADODB.Recordset")
        sql="select * from student where sid in ("&check&")"
        rs.open sql,conn,1,1
    %>
    <div>
    <form action="admin_array_back.asp" method="post">
        请确认小组成员<br />
        <textarea name="members" rows="100">
            <%
                do while not rs.eof
                    
                    response.Write  rs("name")

                rs.movenext
                loop
            %>
        </textarea>
        <br />
        请输入小组名称
        <br />
        <input type="text" name="group_name" />
        
        <input type="submit" value="确认分组">
        
    </form>
    </div>

</body>

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2011-02-23 18:25
rongguo52014
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-2-24
得分:0 
要是传递的类型是文本类型char的呢?
2012-02-24 09:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-332648-1-1.html




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

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