这种套路怎样来设计呢?不重载页面更新了表单里的元素问题了

hntjc 2002-08-01 01:27:33
各位大虾:

  大家好有如下问题请指教!


  有一web页面,页面里有一只表单(form),表单里有多只文本框,另外在这页面里
还有很多的表单之外的按钮(button),按钮的类型为普通类型不是这种submit类型的

除了表单文本框按钮之外,此WEB的页面里还有预先用这frontpage做好的排好版的图
片了表格了文字了.这么多东西组成了一张完整的页面了

我想这样做,点按钮到数据库里读数据,读出来的数据再填到表单里的文本框里(text),
如果按钮的类型为submit那我只要再做一只asp的来响应就可以了.但问题按钮为普通类型的,这样怎样来处理呢?还有读出来的数据又怎样才能填到表单的文本框里而不用重载这页面,达到只更新了表单里文本框内容另外不动的目的了?
...全文
126 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
meizz 2002-08-01
  • 打赏
  • 举报
回复
用一个隐藏的iframe也可以实现:
在主页面里<iframe name=meizz style="display"></iframe>
页面里的每个按钮都可以写成带参数的形式且传给这个隐藏的iframe
<input type=button value=ok onclick="meizz.location.href='aaa.asp?aa=aa'">
这样就相当于向数据库提交了信息,且页面是不会被刷新的(iframe是隐藏的)。
在这个隐藏帧里读到数据库里的数据后你再将数据写到主页面里去就行了。
aaa.asp:
parent.document.all.inputname.value="abc"

说得有些乱,但大体意思还是可以理解的。
hntjc 2002-08-01
  • 打赏
  • 举报
回复
楼上的是这种套路:

按了按钮调用预先做好的ASP文件,还得弹出这窗口

我想把读数据的代码呢不要另外做一只ASP文件,点了一下按钮就调用读数据的
代码了,还有如果按照了楼上的,还得弹出一只窗口来,我并不想再弹出一只窗口来,最好读数据的代码就在此WEB页面里

还有读出来的数据如何呢填到表单里文本框里,而前提不用再重载这WEB页面,
只更新这表单里文本框的内容,而另外的部分呢不动,怎样来做呢
Iamfish 2002-08-01
  • 打赏
  • 举报
回复
freezwy(网络自由人) 说的,相信楼主也看不懂。

我可以用弹出窗口的形式,按那个按钮之后,弹出一个小窗口。那个窗口的URL就是你的那个ASP文件。

数据完成之后,可能过过JS把那些数据写到文本框中。

只是给你一种思想。编程,是要思考的,不要做代码组装员。
evonne_feng 2002-08-01
  • 打赏
  • 举报
回复
<form name="form1" method="post" action="aa.asp">
...
</form>
<input type="button" value="提交" onclick="form1.submit()">
freezwy 2002-08-01
  • 打赏
  • 举报
回复
不刷新页面的情况下调用远程ASP
RS技术的一个具体例子
  在前面的帖子中,我介绍了RS的基本工作原理,显然如果将RS技术运用在一个网站的设计中将会有很多非凡的作用(尤其是它的那个最大的优点,可以在不刷新页面的情况下调用服务端的代码)。正是因为这个特点,你就可以象在编写一个传统的C/S模式的程序一样,对数据库的数据进行处理了(我想大家一定很想知道具体应该如何来实现了,下面将给出一个具体的例子,调试这个破程序几乎快把我给累死,呵呵。)
  从前面的描述可以看到,要使用RS技术就需要客户端和服务端满足下面两个条件:

1。客户端只需要支持Java applet即可

2。而服务端只需要支持ASP即可
  换句话说,就是RS技术是完全独立与浏览器的(当然浏览器至少需要满足支持Java和JavaScript),你可以在IE中使用,也可以完全在NC中使用,这也是区别与RDS技术的一个显著特点。
  在能够灵活运用RS技术前,先要说明一个问题,就是前面也曾经提到过的“异步调用”的问题。也正是因为有异步调用,才能够实现你只刷新页面的某一部分而不用刷新整个页面。
  由于它的这个特点,你可以让服务端来实现在你浏览页面的同时对你输入数据的合法性检查(当然这可以是一系列很复杂的合法性检查,例如需要将用户输入的数据和数据库内已有的数据进行对比等,这个可不是客户端的JS能够解决的),然后当服务端返回检查结果后,你再进行相应的操作(例如弹出一个对话框告诉用户输入出错等等).异步调用时的语法如下:
  RSExecute(serverURL, functionname, param_list)
  第一个参数是你想调用的asp页面的完整的URL路径
  第二个参数是你想调用函数的名称
  后面的就是该函数需要的输入参数了
  如果你想调用的函数需要两个输入参数的话,就是这样的写法:
  RSExecute(serverURL, functionname, f_arg_1, f_arg_2)
当进行调用时有两种写法,
一种是有返回结果的调用方式:
objResult = RSExecute(serverURL, functionname, f_arg_1, f_arg_2);
另外一种则是没有返回结果的调用方式:
RSExecute(url, func_name, f_arg_1, f_arg_2, CallbackFunction);
这种调用方式要特别的注意,其中的CallbackFunction是客户端的一个JS函数它表示一但RS执行完毕服务端上的调用,就会马上调用这个函数,并把结果返回到这个函数中去。
一个典型的CallbackFunction函数应该是这样的结构:
  function CallbackFunction(objResult) {
    //你自己的处理过程
   }
其中唯一的输入参数objResult就是RS调用的返回值.
  下面我们假设这样一种情况:
  用户在浏览器中输入了用户的e-mail地址,然后用户离开了e-mail地址输入框进入接下来的输入过程,这个时候就是RS该上场了,它根据用户输入的地址在服务端的数据库中查询这个地址,就可以判断出这个用户是否已经存在,然后把结果返回给客户端,在客户端再使用DHTML技术在一个叫"ShowResult"的输入框里面提示用户以前输入的信息。
  function CallbackFunc(objResult) {
    // 提示用户的信息
    window[objResult.context].value = objResult.return_value;
   }
  而RSExecute()应该这么调用RSExecute(serverURL, functionname, f_arg_1, CallbackFunc,
"ShowResult");
  不说了,不说了,上面罗嗦了这么多,我想大家也都看得头大了,下面还是让具体的代码来发言把:
(请在使用代码前在你的服务器上建立一个叫NW的系统DSN文件,该文件使用了Northworld即中文ACCESS97自带的示例数据库)
  下面的例子是这么进行的,default.htm中分为两祯,在main.html页面中使用了RS技术,大家可以注意到在main.html中没有使用到submit所以如果你在该页面中直接敲回车键的话什么都不会出现,你必须通过鼠标单击那个"获取信息"按扭来使用这个局部页面刷新技术。在单击完该按扭后,页面会有一段小小的延迟(这段时间内java applet在后台建立了和服务端的连接)然后马上页面回复正常的鼠标,你可以在该页面中继续进行其他的操作。而不必象普通页面刷新时,你只有等待数据。而info.asp大家一眼就能够看明白,其实就是一个很简单的处理字符串的程序。
  如果大家要是对DHTML技术熟悉的话,完全可以在客户端完成这些操作。至于EmpData.asp就是服务端处理数据的程序了。好了,其中的好处大家可以自己去体会。
特别注意,不要改变太多代码,不然很容易出错,毕竟是在使用JavaScript编程.
Default.htm文件代码如下:
<HTML>
<HEAD>
<TITLE>RS技术的实现例子</TITLE>
</HEAD>
<FRAMESET id=fset rows="70%,30%">
<FRAME name=main src="main.html">
<FRAME name=info src="info.asp">
</FRAMESET>
</HTML>
Maim.html文件代码如下
<HTML>
<HEAD>
<TITLE>RS技术的实现例子</TITLE>
</HEAD>
<BODY>
<script language="JavaScript" src="http://YourServer/_ScriptLibrary/rs.htm"></script>
<script language="JavaScript">
RSEnableRemoteScripting("http://YourServer/_ScriptLibrary");
</script>
<h1>雇员信息</h1>
<hr>
<form name=MyForm>
请输入你想查询的名字:
<br><input type=text name="empLastName" size=40>
<input type=button name=btnExecute style="width=150"
value="获取信息"
onclick="execAsynch(empLastName.value)">
</form>
<hr>

<SCRIPT LANGUAGE="javascript">
var serverURL = "http://YourServer";
var pageURL = "/batman/EmpData.asp";
function refreshPage(co)
{
if (co.status != 0) {
alert("发生异常错误\n" +
message);
}
strText = co.return_value;
top.info.location = "info.asp?info=" + escape(strText);
}
function execAsynch(empLastName)
{
RSExecute(serverURL+pageURL, "GetEmpInfoAsArray",
empLastName, refreshPage);
}
</SCRIPT>
</BODY>
</HTML>

info.asp文件代码
<HTML>
<BODY>
<%
Response.Write Request.ServerVariables("REMOTE_USER")
strText = Request.QueryString("info")
If strText = "" Then Response.End
arrData = split(strText, "|")
arrLabels = split("职工,头衔,城市,雇佣日期", ",")
%>
<table border=0>
<%
for i=0 to 3
Response.Write "<tr>"
Response.Write "<td><b>" & arrLabels(i) & "</b></td>"
Response.Write "<td><i>" & arrData(i) & "</i></td>"
next
%>
</table>
</BODY>
</HTML>

EmpData.asp文件
<%@ LANGUAGE=VBSCRIPT %>
<% RSDispatch %>

<SCRIPT RUNAT=SERVER Language=javascript>
<!--#INCLUDE VIRTUAL="/_ScriptLibrary/RS.ASP"-->

function Description()
{
this.GetEmpInfoAsArray = DoGetData;
}
public_description = new Description();

function DoGetData(empName)
{
sql = "select * from 雇员 where [名字]='" + empName + "'";
rst = new ActiveXObject("ADODB.Recordset");
rst.CursorLocation = 3;
rst.Open(sql, "NW");
i = 0;
   strText = "";
if (rst.RecordCount == 1) {
strText += rst.Fields("雇员ID").Value + " - " +
rst.Fields("尊称").Value + " " +
rst.Fields("姓氏").Value + " " +
rst.Fields("名字").Value;
strText += "|";
strText += rst.Fields("头衔").Value;
strText += "|";
strText += rst.Fields("城市").Value + " " +
rst.Fields("地区").Value + ", " +
rst.Fields("国家").Value;
strText += "|";
d = new Date(rst.Fields("雇用日期").Value);
strText += (1+d.getMonth()) + "/" + d.getDate() + "/" +d.getYear();
}
return strText;
}
</SCRIPT>
cshadow 2002-08-01
  • 打赏
  • 举报
回复
你的表述有点混乱,根据我的理解应该是这样的,点击按钮读数据,自动刷新这个页,刷新之后,文本框中出现读取的数据,是这样吗?
【变换域数字水印技术:一种信息隐藏的方法】使用多幅图像作为水印的数字水印技术,该技术基于变换域函数,包括离散小波变换(DWT)、离散余弦变换(DCT)和奇异值分解(SVD)(Matlab代码实现)内容概要:本文介绍了一种基于变换域函数的多幅图像数字水印技术,主要采用离散小波变换(DWT)、离散余弦变换(DCT)和奇异值分解(SVD)相结合的方法,在Matlab环境中实现水印的嵌入与提取。该技术通过在变换域中处理宿主图像和水印图像,增强了水印的鲁棒性和不可见性,适用于版权保护、数据认证等场景。文中详细阐述了算法流程、关键技术环节及其实现代码,展示了该方法在抵抗常见图像攻击方面的有效性。; 适合人群:具备数字图像处理基础,熟悉Matlab编程,从事信息安全、多媒体技术或相关领域研究的研究生及科研人员。; 使用场景及目标:①实现多幅图像作为水印的信息隐藏;②提升水印在复杂攻击下的鲁棒性与透明性;③为学术研究和工程应用提供可复现的Matlab代码参考; 阅读建议:建议读者结合Matlab代码逐步调试算法流程,深入理解DWT、DCT与SVD在水印技术中的协同作用,并可通过添加不同攻击测试来验证算法性能。
【SCI级别】多策略改进鲸鱼优化算法(HHWOA)和鲸鱼优化算法(WOA)在CEC2017测试集函数F1-F30寻优对比内容概要:本文主要介绍了多策略改进鲸鱼优化算法(HHWOA)与传统鲸鱼优化算法(WOA)在CEC2017测试集的30个基准函数(F1-F30)上的寻优性能对比研究。通过引入多种优化策略对原始WOA进行改进,提升了算法的收敛速度、全局搜索能力和避免陷入局部最优的能力。实验结果表明,HHWOA在多数测试函数上表现优于标准WOA,验证了所提改进策略的有效性。该研究为智能优化算法的性能提升提供了可行的技术路径,并适用于复杂工程优化问题的求解。; 适合人群:具备一定算法基础的研究生、科研人员及从事智能优化、人工智能、自动化等领域工作的工程技术人员,熟悉MATLAB编程者更佳。; 使用场景及目标:①用于解决复杂的数值优化问题,如工程参数优化、机器学习超参数调优等;②作为智能优化算法教学与研究的案例,帮助理解鲸鱼优化算法的原理及其改进方法;③为相关领域提供高性能优化工具的开发参考。; 阅读建议:建议结合提供的Matlab代码实现进行实验复现,深入理解算法细节与改进策略的作用机制,同时可通过更换测试函数或应用场景进一步拓展研究深度。
【负荷预测】基于VMD-CNN-LSTM的负荷预测研究(Python代码实现)内容概要:本文介绍了基于变分模态分解(VMD)、卷积神经网络(CNN)和长短期记忆网络(LSTM)相结合的VMD-CNN-LSTM模型在负荷预测中的研究与应用,采用Python代码实现。该方法首先利用VMD对原始负荷数据进行分解,降低序列复杂性并提取不同频率的模态分量;随后通过CNN提取各模态的局部特征;最后由LSTM捕捉时间序列的长期依赖关系,实现高精度的负荷预测。该模型有效提升了预测精度,尤其适用于非平稳、非线性的电力负荷数据,具有较强的鲁棒性和泛化能力。; 适合人群:具备一定Python编程基础和深度学习背景,从事电力系统、能源管理或时间序列预测相关研究的科研人员及工程技术人员,尤其适合研究生、高校教师及电力行业从业者。; 使用场景及目标:①应用于日前、日内及实时负荷预测场景,支持智慧电网调度与能源优化管理;②为研究复合型深度学习模型在非线性时间序列预测中的设计与实现提供参考;③可用于学术复现、课题研究或实际项目开发中提升预测性能。; 阅读建议:建议读者结合提供的Python代码,深入理解VMD信号分解机制、CNN特征提取原理及LSTM时序建模过程,通过实验调试参数(如VMD的分解层数K、惩罚因子α等)优化模型性能,并可进一步拓展至风电、光伏等其他能源预测领域。

28,407

社区成员

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

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