| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5140 人关注过本帖
标题:如何通过复选框传递数值后从数据库中获取相应的ID值后读出数据…………?
只看楼主 加入收藏
在编程中沦落
Rank: 2
等 级:新手上路
威 望:4
帖 子:411
专家分:0
注 册:2005-12-25
收藏
 问题点数:0 回复次数:12 
如何通过复选框传递数值后从数据库中获取相应的ID值后读出数据…………?
如题,比如我有复选框name: id,值选为1,3,4,…………n,等序列ID数值,我如何才能够通过获得相应的值后从数据库中读取数据后调用出来?请大侠们指教。最好有示例代码给我看看参考一下,谢谢…………
搜索更多相关主题的帖子: 复选框 数据库 数值 获取 name 
2006-11-23 11:24
做人很低调
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1268
专家分:0
注 册:2006-8-2
收藏
得分:0 
sql = "select * from table where id in (1,3,4,n)"
是这样不?。。。

其实我很低调,只是你不知道...
2006-11-23 11:38
在编程中沦落
Rank: 2
等 级:新手上路
威 望:4
帖 子:411
专家分:0
注 册:2005-12-25
收藏
得分:0 
但是我们不知道传递的值就是这几个数值啊,我想知道这复选框选取的数值如何通过代码传递出来后从数据库中读取数据…………

比如我已有代码:
<body>
<form name="form1" method="post" action="ch2.asp">
<table width="200" border="1">
<%set rs=server.CreateObject("adodb.recordset")
rs.open "select * from product",conn,1,1
while not rs.eof%>
<tr>
<td><input type="checkbox" name="id" value=<%=rs("id")%>><%=rs("username")%></td>
</tr>
<%rs.movenext
wend%>
<tr>
<td><input type="submit" name="Submit" value="提交"></td>
</tr>
</table>
</form>
</body>

我如何对上面复选框中传递的数值进行数据读取操作,如果只有一个数值的话,我可以…………
<%
id=request.querystring("id")
set rs=server.createobject("adodb.recordset")
sql1="select * from product where id= "&id
rs.open sql1,coon,1,1
%>

但是,假如传递的数值多于一个的话,我不知道该怎么办了?还有重复记录排列问题…………在这种情况下怎么写?

[此贴子已经被作者于2006-11-23 12:11:46编辑过]


2006-11-23 11:47
做人很低调
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1268
专家分:0
注 册:2006-8-2
收藏
得分:0 

晕 拉。。。
你知道复选框传过来的值是一个用逗号分隔的字符串不?
象这样"1,3,5,7" 这样 你自己就不想想办法....
给你个例子 剩下的自己想 不要依赖别人
<%
a="3,4,6"
b=split(a,",")

for i=0 to UBound(b)
if i = 0 then m=b(i)
if i <>0 then m=m&","&b(i)
next
'response.Write(m)
m="("&m&")"
set rs= server.CreateObject("adodb.recordset")
sql = "select * from tab where id in "&m
'response.Write sql
rs.open sql,conn,1,1
do while not rs.eof
response.Write(rs("name")&"<br>")
rs.movenext
loop
%>


其实我很低调,只是你不知道...
2006-11-23 12:12
做人很低调
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1268
专家分:0
注 册:2006-8-2
收藏
得分:0 
建议楼主遇到问题不要急着问
要了解原理 自己多多实验
身为编程员 多数程序不是问别人学到的
都是自己不断的研究和实验 总结出来的...
我说的也是为楼主你好 并没有别的什么意思..要是听不进去的话
当我说的是乱码好了

其实我很低调,只是你不知道...
2006-11-23 12:16
在编程中沦落
Rank: 2
等 级:新手上路
威 望:4
帖 子:411
专家分:0
注 册:2005-12-25
收藏
得分:0 
不好意思,也多谢做人很低调的忠告,我对这个还不太熟,也不知道 复选框传递的值是,分隔的字符串,因为我没系统学过ASP,所以不知道怎么传值的,不过我会系统学学的,现在因为需要写这样个程序,所以没办法了…………

我研究一下你这代码,稍后再发表意见有问题,谢谢你能再来为我解答。

2006-11-23 12:36
在编程中沦落
Rank: 2
等 级:新手上路
威 望:4
帖 子:411
专家分:0
注 册:2005-12-25
收藏
得分:0 

TO:做人很低调

我参考你的例案写的内容,可是提示是:
错误类型:
Microsoft JET Database Engine (0x80040E14)
(代码中红色部分)

请问我这里代码中哪个地方写错了,或还没有正确理解到你的意思。

<!--#include file="../Admin/Coon.asp" -->

<%
a=request.Form("id")
b=split(a,",")

for i=0 to UBound(b)
if i = 0 then m=b(i)
if i <>0 then m=m&","&b(i)
next
'response.Write(m)
m="("&m&")"
set rs= server.CreateObject("adodb.recordset")
sql = "select * from Products where M_id in "&m
'response.Write sql
rs.open sql,conn,1,1
%>
<table width="750" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">
<tr>
<td align="center"><strong>ITEM NO. </strong></td>
<td align="center"><strong>DESCRIPTION</strong></td>
<td align="center"><strong>QUANTITY</strong></td>
<td align="center"><strong>TOTAL AMONT </strong></td>
</tr>
<%do while not rs.eof%>
<tr>
<td align="center"><%=rs("M_ItemNo")%></td>
<td><%=rs("M_Desc")%></td>
<td align="center"><%=rs("M_Quan")%></td>
<td align="center">USD <%=rs("M_ToTa")%></td>
</tr>
<%
rs.movenext
loop%>
</table>
<%
rs.close
%>


2006-11-23 13:18
在编程中沦落
Rank: 2
等 级:新手上路
威 望:4
帖 子:411
专家分:0
注 册:2005-12-25
收藏
得分:0 
上面没错,是正确的,我忘了把传递ID的那一页的复选框名称改过来,所以出错了,疏忽了…………

谢谢做人很低调

2006-11-23 13:35
做人很低调
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1268
专家分:0
注 册:2006-8-2
收藏
得分:0 
不客气 呵呵
但套用我的代码可是不好的习惯哦
要发挥自己的想象
代码是活的,要学的是使用代码的方法 嘿嘿 说多了...

其实我很低调,只是你不知道...
2006-11-23 13:49
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 

JavaScript获取复选框的值进行传递也可以
<head>
<script language="JavaScript">
function Page_Submit()
{
for(var i=0;i<document.form1.ProID.length;i++)
{
if(document.form1.ProID[i].checked)
{
document.form1.PID.value=document.form1.ProID[i].value;
}
}
}
</script>
</head>
<body>
<form name="form1" method="post" action="ch2.asp">
<table width="200" border="1">
<%set rs=server.CreateObject("adodb.recordset")
rs.open "select * from product",conn,1,1
while not rs.eof%>
<tr>
<td><input type="checkbox" name="ProID" value=<%=rs("id")%>><%=rs("username")%></td>
</tr>
<%rs.movenext
wend%>
<tr>
<td><input type="button" name="Submit" onClick="Page_Submit();" value="提交">
<input type="hidden" name="PID" >
</td>
</tr>
</table>
</form>
</body>

ch2.asp的接收代码
<%
'要注意的地方如果form表单的method="post"
'用以下语句才能接收到。
'id=request.form("PID")
id=request.querystring("PID")
set rs=server.createobject("adodb.recordset")
sql1="select * from product where id= "&id
rs.open sql1,coon,1,1
%>

2006-11-23 20:52
快速回复:如何通过复选框传递数值后从数据库中获取相应的ID值后读出数据………… ...
数据加载中...
 
   



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

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