更新数据库记录而不刷新页面。 ASP VBscript
这需要帮助之前,措辞不佳的请求(道歉)。更新数据库记录而不刷新页面。 ASP VBscript
我有两个asp/vbscript页面。当第一页上的形式被提交的第二页(仅含<%的VBScript%>被调用。
在第二页上的代码导致的更新的数据库记录,并如下(字段从填充查询字符串变量):
Set MyConn=Server.CreateObject("ADODB.Connection")
MyConn.Open "dsn=xxx;uid=xxx;password=xxx;"
SQLString = "UPDATE dbo_tbl_printing_tempstore SET " & fieldPrefix & "has_text1 = 'YES', " & fieldPrefix & "text = '" & fieldUpdate & "' WHERE id = " & tempid & ""
MyConn.Execute(SQLString)
MyConn.Close
Set MyConn = Nothing
所有表格提交确实是导致数据库更新发生 - 没有别的
那么页面response.redirects回调用页面这将导致刷新和。第一页上的大量数据将丢失 - 这正是我试图避免的。
有人可以告诉我如何在不离开的情况下执行更新,然后刷新呼叫页面吗?我被告知Ajax可以做到这一点,但我根本没有使用它的经验。
非常感谢
首先,改变你的代码,使用参数,这样你就会对SQL注入攻击的保护:
Set MyConn=Server.CreateObject("ADODB.Connection")
MyConn.Open "dsn=xxx;uid=xxx;password=xxx;"
SQLString = "UPDATE dbo_tbl_printing_tempstore SET " & fieldPrefix & "has_text1 = 'YES', " & fieldPrefix & "text = ? WHERE id = ?"
Set MyCommand = Server.CreateObject("ADODB.Command")
Set MyCommand.ActiveConnection = MyConn
MyCommand.CommandType = 1
MyCommand.CommandText = SQLString
MyCommand.Parameters.Append(MyCommand.CreateParameter("@text", 200, 1, 0, fieldUpdate))
MyCommand.Parameters.Append(MyCommand.CreateParameter("@id", 3, 1, 0, tempid))
MyCommand.Execute()
MyConn.Close
Set MyCommand = Nothing
Set MyConn = Nothing
到这一点,接下来的步骤是在第一添加隐藏帧页:
<iframe id="MyFrame" name="MyFrame" style="display:none;"></iframe>
最后只需添加target
您<form>
标签是这样的:
<form action="SecondPage.asp" target="MyFrame">
就是这样...现在窗体将被提交到隐藏框架的“内部”,仍然会触发数据库更新并且不会导致任何刷新。
感谢这一点。我会试试这个,让你知道我如何继续。 – 2012-01-08 15:55:30
暗影精灵你是明星!我无法相信那么简单。我一直在努力学习Ajax等我的头发。非常感谢! – 2012-01-08 16:08:34
干杯,有时我们需要的是正确的方向。 :)如果这解决了您的问题,请将此标记为接受答案,方法是在左侧勾选V图标,对于其他问题也一样。 – 2012-01-08 21:26:28
是的,阿贾克斯是你应该看看。对Ajax,HTML和HTTP进行一些研究...... – home 2012-01-07 20:25:55
这让我觉得这个问题与JavaScript无关,不应该被标记为这样。 – 2012-01-07 22:04:59
首页,谢谢我会看,但我真的可以做一些这一要求的帮助。我确信我最终会学习Ajax,但对我来说这是一个完整的东西。 Milad Naseri,你可能是正确的,但因为我不知道是否有某种JavaScript/jQuery解决方案,它是适当的,直到有人说否则 – 2012-01-08 10:46:03