重新开贴请教:在JAVASCRIPT中用ASP查询图片地址,图片地址传给JAVASCRIPT中数组,有一个问题请教大家了。谢谢

ruyunluck 2004-12-23 04:42:37
在JAVASCRIPT中用ASP查询图片地址,图片地址传给JAVASCRIPT中数组,我主要是想实现图片在同一个位置交替显示,可是运行下面的代码,图片显示不出来。图片的地址比如直接用1.jpg 2.jpg...表示,可以实现图片的交替显示,但是如果用ASP查询图片地址,这时候图片地址就是动态变化的了,图片就不能显示了。一张图片都显示不出来。请多指教。谢谢了。
下面是代码:
<!--#include file="conn.asp"-->

<SCRIPT language=Javascript>
var bannerAD=new Array();
var bannerADlink=new Array();
var bannerADtarget=new Array();
var adNum=0;

<%
sqlnewpic="SELECT top 5 [defaultPicurl] FROM hw order by hw_id desc"
set rsnewpic=server.createobject("adodb.recordset")
rsnewpic.open sqlnewpic,conn,1,1
//下面的地址如果用
bannerAD[3]="Img223564235.jpg";表示就没有问题;
//但是如果用下面的ASP语句就不能显示任何图片
for i=1 to rsnewpic.recordcount
bannerAD(i)="'admin/article/"&rsnewpic("DefaultPicUrl")&"'"&vbcrlf
next
%>
var preloadedimages=new Array();
for (i=3;i<bannerAD.length-1;i++){
preloadedimages[i]=new Image();
preloadedimages[i].src=bannerAD[i];
}

function setTransition(){
if (document.all){
bannerADrotator.filters.revealTrans.Transition=14;
bannerADrotator.filters.revealTrans.apply();
}
}

function playTransition(){
if (document.all)
bannerADrotator.filters.revealTrans.play()
}

function nextAd(){
if(adNum<bannerAD.length-1)adNum++ ;
else adNum=1;
setTransition();
document.images.bannerADrotator.src=bannerAD[adNum];
playTransition();
theTimer=setTimeout("nextAd()", 5000);
}

function jump2url(){
jumpUrl=bannerADlink[adNum];
jumpTarget=bannerADtarget[adNum];

if (jumpUrl != ''){
if (jumpTarget != '')window.open(jumpUrl,jumpTarget);
else window.open(jumpUrl,"","toolbar=yes,location=yes,directories=yes,status=yes,scrollbars=yes,resizable=yes");
}
}
function displayStatusMsg() {
status=bannerADlink[adNum];
document.returnValue = true;
}
</SCRIPT>

<SCRIPT language=JavaScript>nextAd()</SCRIPT>
...全文
309 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruyunluck 2004-12-25
  • 打赏
  • 举报
回复
谢谢大家的帮助。祝大家新年快乐
patchclass 2004-12-23
  • 打赏
  • 举报
回复
服务器端输出js语句,js语句在客户端运行,js语句服务器端只会当字符串而已
执行顺序,先服务器端,后客户端

说明完毕
possible_Y 2004-12-23
  • 打赏
  • 举报
回复
这样写更加便于你理解:(服务器端只管构造或者说凭凑出你想要的字符串而已,执行的工作留给ie来完成)
<%
dim i
sqlnewpic="SELECT top 5 [defaultPicurl] FROM hw order by hw_id desc"
set rsnewpic=server.createobject("adodb.recordset")
rsnewpic.open sqlnewpic,conn,1,1

for i=1 to rsnewpic.recordcount
Response.Write "bannerAD[<%=i%>]='admin/article/"&rsnewpic("DefaultPicUrl")&"';"
next
%>
possible_Y 2004-12-23
  • 打赏
  • 举报
回复
<%
dim i
sqlnewpic="SELECT top 5 [defaultPicurl] FROM hw order by hw_id desc"
set rsnewpic=server.createobject("adodb.recordset")
rsnewpic.open sqlnewpic,conn,1,1

for i=1 to rsnewpic.recordcount
%>
bannerAD[<%=i%>]="admin/article/<%=rsnewpic("DefaultPicUrl")%>";(注意这里的写法)
<%
next
%>

客户端的js对于浏览器来说是有逻辑功能的程序,但是对于服务器端来说只是一段字符串而已,和<html></html>没有区别
hhjjhjhj 2004-12-23
  • 打赏
  • 举报
回复
bannerAD[3]="Img223564235.jpg";是要在htm中得到的,其中3,Img223564235.jpg要让ASP写,那么ASP代码应是
<%
....
%>
bannerAD[<%=i%>]="<%=rsnewpic("DefaultPicUrl")%>";
<%
....
%>

或:
response.write "bannerAD[" & i & "]='" & rsnewpic("DefaultPicUrl") & "';"
ttkkyy 2004-12-23
  • 打赏
  • 举报
回复
preloadedimages[i].src=bannerAD[i];(这样负值是不可能取得到的)
这样试试

<%
dim i
sqlnewpic="SELECT top 5 [defaultPicurl] FROM hw order by hw_id desc"
set rsnewpic=server.createobject("adodb.recordset")
rsnewpic.open sqlnewpic,conn,1,1

for i=1 to rsnewpic.recordcount
%>
bannerAD[<%=i%>]="'admin/article/"&rsnewpic("DefaultPicUrl")&"'"&vbcrlf (注意这里的写法)
<%
next
%>

这个时候
preloadedimages[i].src=bannerAD[i](这里负值才会成功

看看这个:

<script language=javascript>
var hy_arry = new Array();
<%
dim i
dim a()
redim a(3)
a(0)="a"
a(1)="b"
a(2)="c"
a(3)="d"
for i=0 to 3
%>
hy_arry[<%=i%>]='<%=a(i)%>'

<%
next
%>
alert(hy_arry[0])
</script>

这是把asp数组传给js数组的方法(测试通过)
comszsoft 2004-12-23
  • 打赏
  • 举报
回复
看不明白哦,把数组里的值写出来看看是什么冬冬阿
iuhxq 2004-12-23
  • 打赏
  • 举报
回复
没太看懂,不过你先分清客户端和服务器就好了,想在客户端实现什么 ,就要在服务器端写入(浏览器)
比如你想在显示xxx那就要在服务器<%= "xxx"%>
如果想定义一个JS变量就要<%= "var s;"%>
就是说客户端运行的代码要由服务器端生成。
举个例子:
<%
response.write("<script language=javascript>"&vbcrlf)
response.write("var a = new Array();"&vbcrlf)
for i=0 to 9
response.write "a["&i&"]="&i&";"&vbcrlf
next
response.write("</script>")
%>
<script language=javascript>
var i=0;
for (i=0;i<a.length;i++)
document.write(a[i]);
</script>
这个例子是:变量是在服务器端初始化,然后在客户端用JS显示的。

28,409

社区成员

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

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