怎样实现表格数据的提交

ssh78 2009-10-19 09:52:43
用数据库查询写出表格的行字段和第一列数据,用户根据第一行和第一列的内容,填入其他单元格的数据,然后将这些数据保存到数据库。
例:
姓名 语文 数学 自然 ...
王一 90 36 100 ...
王二 60 38 97 ...
王三 97 86 65 ...
....
请问,这些可以填入数据的单元格是一个个写input么?还是可以用其他方式控制为可输入的?因为行和列都很多,这样的单元格可能有好几百个呢
...全文
204 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
ssh78 2009-10-19
  • 打赏
  • 举报
回复
谢谢,我试试去
BeenZ 2009-10-19
  • 打赏
  • 举报
回复
1.你可以用可编辑表格,就不用input了
2.遍历单元格,记录数据,然后提交

eg

<script>
function showAllvalue(){
var ret=[];
var tb=document.getElementById("tb");
for(var i=0;i<tb.rows.length;i++){
for(var j=0;j<tb.rows[i].cells.length;j++){
ret=tb.rows[i].cells[j].innerText;
}
}
alert(ret)
}
</script>
<table border="solid red 1px" id="tb">
<tr>
<td><span contentEditable="true">可以编辑这个地方</span></td>
</tr>
</table>
<input type="button" onclick="showAllvalue()" value="提交">
lzp4881 2009-10-19
  • 打赏
  • 举报
回复
用循环
ssh78 2009-10-19
  • 打赏
  • 举报
回复
结贴了,三位都这么辛苦,谢谢了,都有分
ssh78 2009-10-19
  • 打赏
  • 举报
回复
我没有将数据存入数据库,只是在另一个页面上打印出来了,果然可以,呵呵,谢谢,这种方法好,很简单。
lzp4881 2009-10-19
  • 打赏
  • 举报
回复
for i=0 to ubound(aa) 改成for i=0 to ubound(xm)
ssh78 2009-10-19
  • 打赏
  • 举报
回复
得到浏览器里的地址是这样的:
http://localhost/aap/app_submit.asp?xm=xingming1&yw=yuwenchengji1&sx=&xm=xingming2&yw=yuwenchengji2&sx=shuxuechengji2&xm=&yw=&sx=
lzp4881 2009-10-19
  • 打赏
  • 举报
回复
if aa(i) <>"" then 这句改一下
if xm(i) <>"" then
ssh78 2009-10-19
  • 打赏
  • 举报
回复
lzp4881,正在试你的方法
lzp4881 2009-10-19
  • 打赏
  • 举报
回复
何必那么麻烦,用表单不是省事得多?
<%
'数据库连接略
action=request.QueryString("action")
xm=split(request.form("xm"),",")
yw=split(request.form("yw"),",")
sx=split(request.form("sx"),",")
zr=split(request.form("zr"),",")

if action="save" then
for i=0 to ubound(aa)
if aa(i) <>"" then
conn.execute("insert into [表] (姓名,语文,数学,自然) values ('"&xm(i)&"','"&yw(i)&"','"&sx(i)&"','"&zr(i)&"')")
end if
next
end if
%>

<form action="?action=save" method="post" name="form1">
<table border="1" cellspacing="0" cellpadding="0" bordercolor="#000000" bordercolordark="#FFFFFF" bgcolor="#FFFFFF">
<tr><td>姓名</td><td>语文</td><td>数学</td><td>自然</td></tr>
<%
for i=1 to 8
response.write "<tr>"
response.write "<td><input name='xm' type='text' size='10' style='border:0px'></td>"
response.write "<td><input name='yw' type='text' size='10' style='border:0px'></td>"
response.write "<td><input name='sx' type='text' size='10' style='border:0px'></td>"
response.write "<td><input name='zr' type='text' size='10' style='border:0px'></td>"
response.write "</tr>"
next
%>
</table>
<input type="submit" name="submit" value="提 交">
</form>
ssh78 2009-10-19
  • 打赏
  • 举报
回复
request.getParameterValues()是取的时候用的吧,在那个js方法里,应该有个赋值语句吧?
BeenZ 2009-10-19
  • 打赏
  • 举报
回复
request.getParameterValues()是个比较好的方法
ssh78 2009-10-19
  • 打赏
  • 举报
回复
那应该怎样传值呢,又不能放在session里
BeenZ 2009-10-19
  • 打赏
  • 举报
回复
是的,document.all.隐藏域.value=ret ret不能为一数组
ssh78 2009-10-19
  • 打赏
  • 举报
回复
document.all.隐藏域.value=ret
不过,我想这样是不行的,果然取不到值,一个是数组,一个是字符串,肯定不对等呀
BeenZ 2009-10-19
  • 打赏
  • 举报
回复
你现在是如何传给服务器的发来看看
ssh78 2009-10-19
  • 打赏
  • 举报
回复
楼上的,大体意思我明白了,但是这个方法不如BeenZ的清晰明了。你的意思是生成n个input呀
xuntaohm 2009-10-19
  • 打赏
  • 举报
回复
sql="select 姓名,数学成绩,语文成绩,总成绩,平均成绩 from 成绩" 
Set RS=Server.CreateObject("ADODB.RecordSet")
RS.Open sql,conn,3,2
outstr=" <FORM name=forma action=aaa.asp method=post>" //这里aaa.asp就写你的页面名称就行
outstr=outstr & " <TR> <TD align=middle>姓名 </TD> <TD align=middle>数学成绩 </TD> <TD align=middle>语文成绩 </TD> <TD align=middle>总成绩 </TD> <TD align=middle>平均成绩 </TD> </TR>"
for i=1 to RS.RecordCount
outstr=outstr & " <TR> <TD> <INPUT name=t1" & i & " size=20 value=" & chr(34) & RS("姓名") & chr(34) & " readonly> </TD> <TD> <INPUT name=t2" & i & " size=20 value=" & chr(34) & RS("语文成绩") & chr(34) & " readonly> </TD> <TD> <INPUT name=t3" & i & " size=20 value=" & chr(34) & RS("数学成绩") & chr(34) & " readonly> </TD> </TD> <TD> <INPUT name=t4" & i & " size=20 value=" & chr(34) & RS("总成绩") & chr(34) & "> </TD> </TD> <TD> <INPUT name=t5" & i & " size=20 value=" & chr(34) & RS("平均成绩") & chr(34) & "> </TD> </TR>"
RS.MoveNext
next
Response.Write(outstr)
%>
<input type="submit" name="btnSubmit" id="btnSubmit" value="提交" />
<%
sql1="select* from 成绩"
Set RS1=Server.CreateObject("ADODB.RecordSet")
RS1.Open sql,conn,3,2
for j=1 to RS1.RecordCount
conn.execute("insert into 成绩表 (总成绩,平均成绩) values('" & Request.Form("t4" & j) & "','" & Request.Form("t5" & j) & "')")
RS1.MoveNext
next
Response.Write(outstr)
%>
</form>
ssh78 2009-10-19
  • 打赏
  • 举报
回复
还是不会传值
xuntaohm 2009-10-19
  • 打赏
  • 举报
回复
asp自己就能做。不需要数据库。我给你写个例子。首先,先将原来数据库的表(假设叫成绩表)查询并在页面显示出来。假设你数据库里原来的表格有5个列:姓名,数学成绩,语文成绩,总成绩,平均成绩,其中后面两个列是空白的没填。你要讲表显示出来 并把剩下的填好,再提交回数据库。
sql="select 姓名,数学成绩,语文成绩,总成绩,平均成绩 from 成绩"
Set RS=Server.CreateObject("ADODB.RecordSet")
RS.Open sql,conn,3,2
outstr="<FORM name=forma action=aaa.asp method=post>" //这里aaa.asp就写你的页面名称就行
outstr=outstr & "<TR><TD align=middle>姓名</TD><TD align=middle>数学成绩</TD><TD align=middle>语文成绩</TD><TD align=middle>总成绩</TD><TD align=middle>平均成绩</TD></TR>"
for i=1 to RS.RecordCount
outstr=outstr & "<TR><TD><INPUT name=t1" & i & " size=20 value=" & chr(34) & RS("姓名") & chr(34) & " readonly></TD><TD><INPUT name=t2" & i & " size=20 value=" & chr(34) & RS("语文成绩") & chr(34) & " readonly></TD><TD><INPUT name=t3" & i & " size=20 value=" & chr(34) & RS("数学成绩") & chr(34) & " readonly></TD></TD><TD><INPUT name=t4" & i & " size=20 value=" & chr(34) & RS("总成绩") & chr(34) & "></TD></TD><TD><INPUT name=t5" & i & " size=20 value=" & chr(34) & RS("平均成绩") & chr(34) & "></TD></TR>"
RS.MoveNext
next
Response.Write(outstr)
%>
<input type="submit" name="btnSubmit" id="btnSubmit" value="提交" />
<%
sql1="select* from 成绩"
Set RS1=Server.CreateObject("ADODB.RecordSet")
RS1.Open sql,conn,3,2
for j=1 to RS1.RecordCount
conn.execute("insert into 成绩表 (总成绩,平均成绩) values('" & Request.Form("t4" & j) & "','" & Request.Form("t5" & j) & "')")
RS1.MoveNext
next
Response.Write(outstr)
%>
</form>
你的数据库怎样我不了解 ,希望这个意思你能看明白,那你稍微改一下就能转换成你想要的。
加载更多回复(5)

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧