东北流通券100元版别:急求在ASP中如何自动提交FORM表单

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 06:08:15
ASP中如何自动提交FORM表单
<form ....>
<input ...>
<....submit..>
</form>
要点击 “SUBMIT”按钮才能提交
如何用语句自动提交?
clocktimer = setTimeout("scroll()", 1000);
请问是定时提交吗?

基于安全原因FORM表单是不能自动提交的,必须有用户参与才行。

不过使用AJAX可以以POST方式发送请求。

例如:

请求 test.php 页面,并一起发送一些额外的数据(同时仍然忽略返回值):
jQuery 代码:
$.post("test.php", { name: "John", time: "2pm" } );

首先你想自动提交一定要有激发条件,比如点击某按钮/图片提交、在某框里填写内容后提交、更改某框内容后提交、延时30秒提交等等。下面以更改某框内容提交为例:

<form name="form1" action="test.asp">
<select name="name" onchange="form1.submit();">
<option value="">默认</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</form>

总之先要确定你想要激发自动提交的条件,然后找到你想拦截的事件,最后用"表单名.submit();"的javascript语句实现自动提交。

1.html代码

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>

<SCRIPT language=JavaScript>
function scroll() {
alert('ss');
document.n1.submit();
clocktimer = setTimeout("scroll()", 1000);
}
</SCRIPT>
</head>

<body onLoad="scroll()" >
<form action="2.asp" name="n1" method="post">
<input type="text" name="t1" value="1">
</form>
</body>
</html>

2.asp代码
<%
response.write(request("t1"))
%>

时间延迟处理可能不太好,这样会提交一些戎余数据,可能第一个已经提交了3次,第二个还没有提交过,而且浪费服务器资源,看不见提交效果。我这个是用XMLHTTP处理的,你每填写一样信息就可以自动处理了,而且还可以看见处理的效果,随时可以提示你刚刚填写内容的处理结果。

我用的是事件激发提交处理,只要你填写完一个文本框,当你把鼠标点向别处时,你刚刚填写内容就自动提交了。

这里我为了简便把提交页和处理页写一起了。你可以自己分开。还有我处理只是简单的返回了内容,并没有写数据库,你可以自己填写代码,把信息写入数据库。

你把下面所有的代码复制到一个ASP文件中,运行下就可以看见结果了。

<script language=JavaScript RUNAT=SERVER>
function URLDecode(str)
{
return escape(str);
}
</script>
<%
if not request("act")="" then
'这里可以处理数据并可以写入数据库。
'下面可以返回数据处理结果。
response.Write(URLDecode("您填写的信息已经处理,您填写的是" & request("act") & ",填写的内容是" & request("info")))
response.End()
end if
%>
<p>T1:<input type="text" name="T1" ID="T1" onchange="javascript:chang1();"/><span id="S1"></span></p>
<p>T2:<input type="text" name="T2" ID="T2" onchange="javascript:chang2();"/><span id="S2"></span></p>
<script language="javascript">
function chang1(){
var oBao = new ActiveXObject("Microsoft.XMLHTTP");
var str="?info="+document.all.T1.value+"&act=T1"
oBao.open("POST",str,false);
oBao.send();
var atext = unescape(oBao.responseText);
document.all.S1.innerHTML="<font color=red>"+atext+"</font>";
}
function chang2(){
var oBao = new ActiveXObject("Microsoft.XMLHTTP");
var str="?info="+document.all.T2.value+"&act=T2"
oBao.open("POST",str,false);
oBao.send();
var atext = unescape(oBao.responseText);
document.all.S2.innerHTML="<font color=red>"+atext+"</font>";
}
</script>

楼上第一个回答的很好,对,要有激发条件的!定义事件发生后的延迟或不延迟均可.