求助:JS的变量值如何传给ASP程序,数组循环取值
问题:想通过JS延时调用ASP里的函数yyy(),而要传递给函数yyy()的值又是一个数组,每次调用函数需要传递不同的值。在JS中aaa数组里的e我想用JS的值,不知道怎...
问题:想通过JS延时调用ASP里的函数yyy(),而要传递给函数yyy()的值又是一个数组,每次调用函数需要传递不同的值。
在JS中aaa数组里的e 我想用JS的值,不知道怎么实现,下面写的肯定不对的。
// 有什么方法可以实现把JS变量的值e送给ASP吗,使得函数yyy()可以接收aaa数组的值,请大侠赐教呀?
我的代码如下:
<%
dim aaa(5), i , x
x="abc"
for i=0 to 5
aaa(i)=x & i
next
function yyy(b) ' 功能函数
'代码省略...
'....
end function
%>
<script language="javascript" defer>
var e = 0;
var ccc = new Array();
function test() {
ccc(e) = <% =yyy(aaa(e)) %>;
e+= 1;
if (e <= <% =ubound(aaa) %>) {
window.setTimeout('test()',6000);
}
}
window.setTimeout('test()',6000);
</script>
希望提供建议的朋友能给出解决问题的原代码,越详尽越好,解决问题一定加分,加分,加分! 展开
在JS中aaa数组里的e 我想用JS的值,不知道怎么实现,下面写的肯定不对的。
// 有什么方法可以实现把JS变量的值e送给ASP吗,使得函数yyy()可以接收aaa数组的值,请大侠赐教呀?
我的代码如下:
<%
dim aaa(5), i , x
x="abc"
for i=0 to 5
aaa(i)=x & i
next
function yyy(b) ' 功能函数
'代码省略...
'....
end function
%>
<script language="javascript" defer>
var e = 0;
var ccc = new Array();
function test() {
ccc(e) = <% =yyy(aaa(e)) %>;
e+= 1;
if (e <= <% =ubound(aaa) %>) {
window.setTimeout('test()',6000);
}
}
window.setTimeout('test()',6000);
</script>
希望提供建议的朋友能给出解决问题的原代码,越详尽越好,解决问题一定加分,加分,加分! 展开
3个回答
展开全部
<script language="javascript" defer>
var e = 0;
var ccc = new Array();
function test() {
createXMLHttp();
var Send_Data = "e=" + ccc(e)
//ccc(e) = <% =yyy(aaa(e)) %>;
Ajax_Http( Send_Data )
e+= 1;
if (e <= <% =ubound(aaa) %>) {
window.setTimeout('test()',6000);
}
}
window.setTimeout('test()',6000);
//这段不用更改,直接用
function createXMLHttp(){
if ( window.XMLHttpRequest ) { // Mozilla 浏览器
xmlHttp = new XMLHttpRequest();
} else if ( window.ActiveXObject ){ // IE 浏览器
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch ( e ) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch ( e ) {
}
}
}
}
//这里是发送参数的
function Ajax_Http( Send_Data ) {
var url = "Xml.Asp"//做一个接收参数的文件,文件名就随你了
xmlHttp.onreadystatechange = Ajax_Check;
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");
xmlHttp.send(Send_Data);
}
function Ajax_Check() {
if ( xmlHttp.readyState == 4 ) {
if( xmlHttp.status == 200 ){
if ( xmlHttp.responseText != "False" ) {//False是函数返回的错误信息,不等于错误信息的情况下返回你函数输出的结果
alert("返回的正确信息")
} else {
alert("错误信息!")
}
}else{
alert("请求的页面错误!")
}
}
};
</script>
Xml.Asp的内容
<%
b = Request.Form("e")
dim aaa(5), i , x
x="abc"
for i=0 to 5
aaa(i)=x & i
next
function yyy(b) ' 功能函数
'代码省略...
'....
end function
%>
另外要去下一个Jquery.Js
var e = 0;
var ccc = new Array();
function test() {
createXMLHttp();
var Send_Data = "e=" + ccc(e)
//ccc(e) = <% =yyy(aaa(e)) %>;
Ajax_Http( Send_Data )
e+= 1;
if (e <= <% =ubound(aaa) %>) {
window.setTimeout('test()',6000);
}
}
window.setTimeout('test()',6000);
//这段不用更改,直接用
function createXMLHttp(){
if ( window.XMLHttpRequest ) { // Mozilla 浏览器
xmlHttp = new XMLHttpRequest();
} else if ( window.ActiveXObject ){ // IE 浏览器
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch ( e ) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch ( e ) {
}
}
}
}
//这里是发送参数的
function Ajax_Http( Send_Data ) {
var url = "Xml.Asp"//做一个接收参数的文件,文件名就随你了
xmlHttp.onreadystatechange = Ajax_Check;
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");
xmlHttp.send(Send_Data);
}
function Ajax_Check() {
if ( xmlHttp.readyState == 4 ) {
if( xmlHttp.status == 200 ){
if ( xmlHttp.responseText != "False" ) {//False是函数返回的错误信息,不等于错误信息的情况下返回你函数输出的结果
alert("返回的正确信息")
} else {
alert("错误信息!")
}
}else{
alert("请求的页面错误!")
}
}
};
</script>
Xml.Asp的内容
<%
b = Request.Form("e")
dim aaa(5), i , x
x="abc"
for i=0 to 5
aaa(i)=x & i
next
function yyy(b) ' 功能函数
'代码省略...
'....
end function
%>
另外要去下一个Jquery.Js
追问
非常感谢你的回答,你就是传说中我崇拜的偶像之一呀,要的就是这种点石成金的方法。
还有一个问题,请赐教:参考上面的代码,我在本机测试AJAX POST的方法,可以取到传的值,但上传到服务器上,服务器取不到POST的参数,测试得知,服务器Request.Form取的值为“空白”不知道为何。另外,我没有用Jquery.JS,会不会是这个原因呢?随后测试:接收页面不取值,只显示一般HTML文本,也得不到xmlHttp.responseText的值,显示为空白?
追答
必须要用的,这方面我也不是很专业
但是必须要用ajax或者是jquery的
ajax好象不支持下面的创建方式,但其他地方都是一样的
用ajax的时候一般我都是直接“xmlHttp = new XMLHttpRequest();”
网上的说法是貌似某些浏览器不支持
//这个好象是单纯的jquery的创建方式,没专门测过,所以无法给你很全的说法,不过用jquery的时候我忘了我是用的谷歌还是FF的时候确实是用“xmlHttp = new XMLHttpRequest();”这种方式会报错
function createXMLHttp(){
if ( window.XMLHttpRequest ) { // Mozilla 浏览器
xmlHttp = new XMLHttpRequest();
} else if ( window.ActiveXObject ){ // IE 浏览器
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch ( e ) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch ( e ) {
}
}
}
}
展开全部
参数必须传递到服务端去,否则有问题;
你可以用ajax方式,每次setTimeout发送一个请求,把当前参数传到服务端,让根据服务端yyy函数的返回值再执行相应的操作
你可以用ajax方式,每次setTimeout发送一个请求,把当前参数传到服务端,让根据服务端yyy函数的返回值再执行相应的操作
追问
能否给一段示范代码呢,谢谢哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用数组
WenDangChannelID = Array(5, 1001, 1005)
'或者 WenDangChannelID = Split("5|1001|1005", "|")
ChannelID = 1001
if inArray(WenDangChannelID, ChannelID) <> -1 then
Response.Write("ChannelID的值在WenDangChannelID里")
end if
public function inArray(arr_, val_)
dim i,rt
rt = -1
for i = 0 to Ubound(arr_)
if arr_(i) = val_ then
rt = i
exit for
end if
next
inArray = rt
end function
WenDangChannelID = Array(5, 1001, 1005)
'或者 WenDangChannelID = Split("5|1001|1005", "|")
ChannelID = 1001
if inArray(WenDangChannelID, ChannelID) <> -1 then
Response.Write("ChannelID的值在WenDangChannelID里")
end if
public function inArray(arr_, val_)
dim i,rt
rt = -1
for i = 0 to Ubound(arr_)
if arr_(i) = val_ then
rt = i
exit for
end if
next
inArray = rt
end function
追问
不明白,这段比较代码跟JS有什么关系呀
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询