asp页面不能提交修改的问题求助

newlife_cqt 2006-02-16 09:31:28
先谢谢了!

小弟遇到这样一个问题:
我就是想做一个类似修改用户资料的页面。
从上一个页面中获取ID,然后从数据库中取得相关信息,并把它显示出来,然后,用户可以修改内容。

页面名字叫modify.asp
整个页面代码如下:
- - - - - - -- - - -- - - - -- - - -- - -- - - - -- - -- - -
<!--#include file="conn.asp"-->
<%
'从从上页获取的值IP
IP=request("ip")
' get the form data
EditName=request.Form("editname")
EditOrder=request.Form("editorder")


if IP<>"" then '如果从上页获取的值非空
set rs = Server.CreateObject("ADODB.RecordSet")
sql="select * from mainclass where ID="&cint(IP)
rs.open sql,conn,1,3
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css" media="all">
@import url(sort.css );
</style>
<SCRIPT language=javascript src=sortcheck.js type=text/javascript></SCRIPT>
<title>后台管理--修改主类操作</title>
</head>
<body>
<div id=sortoperate>
<div class="algin_l so_title">您要修改的主类为:</div>
<form name=frm_editclass action=modify.asp method=post onSubmit="return check_editclass()">
<div class="editlist">
<ul>
<li class="ehint">主类名称:</li>
<li class="edisplaycontent"><span class=so_content><%<%=rs("ClassClass")%></span></li>
<li class="ehint">修改为:</li>
<li class="einput"><input class=ed_input type=text name=editname /></li>
</ul>
</div>
<div class="editlist">
<ul>
<li class="ehint">主类序号:</li>
<li class="edisplaycontent"><span class=so_content><%=rs("ClassOrder")%></span></li>
<li class="ehint">修改为:</li>
<li class="einput"><input class=ed_input type=text name=editorder /></li>
</ul>
</div>
<div class="editlist"><input type=submit name=submit value=提交修改 /></div>
</form>
</div>
<%
if EditName<>"" and EditOrder<>"" then '如果表单输入非空
rs("ClassName")=EditName
rs("ClassOrder")=EditOrder
rs.update
response.Write "修改成功!"
else '如果表单输入为空
response.Write "请输入表单!"
end if
rs.close
response.End
%>
</body>
</html>
<%
else '如果从上页获取的值为空
    response.Write "没有选择要修改的分类?"
end if
rs.close
response.End
%>
...全文
76 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
newlife_cqt 2006-02-17
  • 打赏
  • 举报
回复
现在又有两个问题:
***************************************************************
一是 我采用了 ybfqlyq朋友的建议,把修改的代码放在页面最后
 结果可以更新了,可是仍是出现了下面的错误:
 
 ADODB.Recordset 错误 '800a0e78'    对象关闭时,不允许操作。

代码如下:
<%
' get the form data
EditName=request.Form("editname")
EditOrder=request.Form("editorder")
ClassID=trim(request.Form("id"))
if ClassID<>"" then '如果表单输入非空
set rs1 = Server.CreateObject("ADODB.RecordSet")
sql1 = "update mainclass set ClassName='"&EditName&"',ClassOrder='"&EditOrder&"' where Id="&cint(ClassID)
response.Write sql1
rs1.open sql1,conn,1,3
response.Write "修改成功!"
rs1.close
set rs1=nothing
end if
%>
而在此前,没有用过记录集rs1呀,所以,我想不通为什么会出现那样的错误?

*****************************************************************
二是,像这种修改的代码放在页面开始,和页面结束有没有区别,会不会放在前面速度上要比放在后面快一些

请大家帮忙呀,小弟给您鞠躬了!


newlife_cqt 2006-02-17
  • 打赏
  • 举报
回复
如果ClassID不加转换
sql1 = "update mainclass set ClassName='"&EditName&"',ClassOrder='"&EditOrder&"' where Id="&ClassID
则出现了这样的错误:
update mainclass set ClassName='43',ClassOrder='43' where Id=/
Microsoft JET Database Engine 错误 '80040e14'

语法错误 (操作符丢失) 在查询表达式 'Id=/' 中。
*******************************************************************************

如果把ClassID转换成整型:
sql1 = "update mainclass set ClassName='"&EditName&"',ClassOrder='"&EditOrder&"' where Id="&cint(ClassID)
则出现这样的错误:
Microsoft VBScript 运行时错误 错误 '800a000d'

类型不匹配: 'cint'


*******************************************************************************
如果把ClassID转换成长整型:
sql1 = "update mainclass set ClassName='"&EditName&"',ClassOrder='"&EditOrder&"' where Id="&clng(ClassID)
则出现这样的错误:
Microsoft VBScript 运行时错误 错误 '800a000d'

类型不匹配: 'clng'
newlife_cqt 2006-02-17
  • 打赏
  • 举报
回复
我现在把页面改成下面这样了
如果
sql1 = "update mainclass set ClassName='"&EditName&"',ClassOrder='"&EditOrder&"' where Id="&ClassID
则出现了这样的错误:
update mainclass set ClassName='43',ClassOrder='43' where Id=/
Microsoft JET Database Engine 错误 '80040e14'

语法错误 (操作符丢失) 在查询表达式 'Id=/' 中。
*******************************************************************************
如果
sql1 = "update mainclass set ClassName='"&EditName&"',ClassOrder='"&EditOrder&"' where Id="&ClassID
则出现这样的错误:
Microsoft VBScript 运行时错误 错误 '800a000d'

类型不匹配: 'cint'


页面代码:
*****************************************************************
<!--#include file="../../shujuconn/conn.asp"-->

<%

' get the form data
EditName=request.Form("editname")
EditOrder=request.Form("editorder")
ClassID=trim(request.Form("id"))

if ClassID<>"" then '如果表单输入非空
set rs1 = Server.CreateObject("ADODB.RecordSet")
sql1 = "update mainclass set ClassName='"&EditName&"',ClassOrder='"&EditOrder&"' where Id="&ClassID
response.Write sql1

'conn.execute(sql1)
rs1.open sql1,conn,1,3
'rs("ClassName")=EditName
'rs("ClassOrder")=EditOrder
'rs.update

response.Write "修改成功!"
rs1.close
response.End
'else '如果表单输入为空
'response.Write "请输入表单!"
end if
%>

<%
'从从上页获取的值IP
IP=request("ip")
if IP<>"" then '如果从上页获取的值非空
set rs = Server.CreateObject("ADODB.RecordSet")
sql="select * from mainclass where ID="&cint(IP)
rs.open sql,conn,1,1
response.Write sql

%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css" media="all">
@import url(sort.css );
</style>
<SCRIPT language=javascript src=sortcheck.js type=text/javascript></SCRIPT>
<title>后台管理--修改主类操作</title>
</head>
<body>
<div id=sortoperate>
<div class="algin_l so_title">您要修改的主类为:</div>
<form name=frm_editclass action=editmain.asp method=post onSubmit="return check_editclass()">
<div class="editlist">
<ul>
<li class="ehint">主类名称:</li>
<li class="edisplaycontent"><span class=so_content><%=rs("ClassName")%></span></li>
<li class="ehint">修改为:</li>
<li class="einput"><input class=ed_input type=text name=editname /></li>
</ul>
</div>
<div class="editlist">
<ul>
<li class="ehint">主类序号:</li>
<li class="edisplaycontent"><span class=so_content><%=rs("ClassOrder")%></span></li>
<li class="ehint">修改为:</li>
<li class="einput"><input class=ed_input type=text name=editorder /></li>
</ul>
</div>
<div class="editlist"><input type=submit name=submit value=提交修改 /></div>
<input type=hidden name=id value=<%=IP%> />
</form>
</div>
<%
%>
</body>
</html>
<%
rs.close
response.End
else '如果从上页获取的值为空
response.Write "没有选择要修改的分类?"
end if


%>

ybfqlyq 2006-02-17
  • 打赏
  • 举报
回复
你的保存修改的語句也放在IF IP<>""裡面了,而你修改後的表單沒有IP,所以它執行不了你的保存修改的語句。
你可以在表單裡加個隱藏參數或者把保存修改的程序放在IF IP<>"" END IF後面。
newlife_cqt 2006-02-17
  • 打赏
  • 举报
回复
谢谢楼上朋友的回复

我现在在试,还不知道可不可以
jamsonwoo 2006-02-17
  • 打赏
  • 举报
回复
<!--#include file="conn.asp"-->
<%
'从从上页获取的值IP
IP=request("ip")
' get the form data
EditName=request.Form("editname")
EditOrder=request.Form("editorder")


if IP<>"" then '如果从上页获取的值非空
set rs = Server.CreateObject("ADODB.RecordSet")
sql="select * from mainclass where ID="&cint(IP)
rs.open sql,conn,1,3
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css" media="all">
@import url(sort.css );
</style>
<SCRIPT language=javascript src=sortcheck.js type=text/javascript></SCRIPT>
<title>后台管理--修改主类操作</title>
<script language="javascript">
<!--
function check_editclass()
{}
//-->
</script>
</head>

<body>
<div id=sortoperate>
<div class="algin_l so_title">您要修改的主类为:</div>
<form name=frm_editclass action=test3.asp method=post onSubmit="return check_editclass()">
<input type=hidden name=IP value="<%=IP%>">
<div class="editlist">
<ul>
<li class="ehint">主类名称:</li>
<li class="edisplaycontent"><span class=so_content><%=rs("ClassName")%></span></li>
<li class="ehint">修改为:</li>
<li class="einput"><input class=ed_input type=text name=editname /></li>
</ul>
</div>
<div class="editlist">
<ul>
<li class="ehint">主类序号:</li>
<li class="edisplaycontent"><span class=so_content><%=rs("ClassOrder")%></span></li>
<li class="ehint">修改为:</li>
<li class="einput"><input class=ed_input type=text name=editorder /></li>
</ul>
</div>
<div class="editlist"><input type=submit name=submit value=提交修改 /></div>
</form>
</div>
<%
if EditName<>"" and EditOrder<>"" then '如果表单输入非空
rs("ClassName")=EditName
rs("ClassOrder")=EditOrder
rs.update
response.Write "修改成功!"
else '如果表单输入为空
response.Write "请输入表单!"
end if
rs.close
response.End
%>
</body>
</html>
<%
else '如果从上页获取的值为空
response.Write "没有选择要修改的分类?"
end if
%>
jamsonwoo 2006-02-17
  • 打赏
  • 举报
回复
1.
在 <form name=frm_editclass action=modify.asp method=post onSubmit="return check_editclass()">
加一行 <input type=hidden name=IP value="<%=IP%>">

2.<li class="edisplaycontent"><span class=so_content><%<%=rs("ClassClass")%></span></li> 多了个<% ,并且字段应该是 ClassName

3.    response.Write "没有选择要修改的分类?"
前面的空格改成半角

4.建议修改操作单独拿出来,在页面开始处理
newlife_cqt 2006-02-16
  • 打赏
  • 举报
回复
页面代码最后两句
rs.close
response.end

是没有的

另外问一个,在csdn中怎样修改自己发的贴子呀,呵呵,很菜的问题

28,406

社区成员

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

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