请帮忙看看这个js函数数组为什么只能赋值第一个值?

lilu207 2005-06-17 11:45:42
<%''下拉菜单1,选项从数据库表中查出 %>
<SELECT name="xx" onchange="return dj(this.selectedIndex,document.all.yy.selectedIndex)" >
<%
i=0
sql= "SELECT name,part,id from table1 "
Set rs = Conn.Execute(sql)
arr1=rs.GetRows()
rs.MoveFirst
while not rs.eof
%>
<option value="<%=trim(rs("id"))%>"><%=trim(rs("id"))%></option>

<%
i=i+1
rs.MoveNext
ni=i
wend
%>
</SELECT>

<%''下拉菜单2,选项固定,只2个 %>
<SELECT name="yy" onchange="return dj(document.all.xx.selectedIndex,this.selectedIndex)" >
<option value="aa" selected >aa</option>
<option value="bb" >bb</option>
</SELECT>

<%''输出文本框1,根据下拉菜单1和2的内容输出 %>
<input type="text" name="aa" size="20" value="" maxlength =250 >

<%''输出文本框2,根据下拉菜单1和2的内容输出 %>
<input type="text" name="bb" size="20" value="" maxlength =250 >

<%''调用的函数 %>
<script LANGUAGE="JavaScript">
<!--
//定义变量
var i=0;
var j=parseInt(<%=ni%>); //前面下拉菜单1中的记录条数
var ii=0;
var ssarr1=new Array(j); //数组ssarr1存放输出到aa的值
var ssarr2=new Array(j); //数组ssarr2存放输出到bb的值

for (i=0; i<j; i++)
{
ssarr1[ii]=<%=arr1(0,ii)%>; //将多维数组arr1(0)的值赋值给数组
ssarr2[ii]=<%=arr1(1,ii)%>; //将多维数组arr1(1)的值赋值给数组
ii++; //但查看源文件时发现循环好像没执行
} // 只有被复制了arr1(0,1)和arr1(1,1)的值
function dj(obj1,obj2) //调用函数,
{
var xx=parseInt(obj1)
var yy=document.all.yy.options[document.all.yy.selectedIndex].value;

//根据下拉菜单2进行文本框输出值区分
if (yy=="aa")
{
inputid.aa.value=<%=arr1(0,xx)%>; //输出arr(0,xx)和ssarr1[xx]的值,
inputid.bb.value=ssarr1[xx]; //但实际输出的结果只有1组
return; //改变选项文本框中输出的结果不变
} //请问原因是什么?怎么改?
else
{
inputid.aa.value=<%=arr1(1,xx)%>;
inputid.bb.value=ssarr2[xx];
return;
}

}
//-->
</script>
...全文
149 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lilu207 2005-06-20
  • 打赏
  • 举报
回复
明白了,因为<%=arr1(1,i)%>是字符型,必须 ssarr2[ii]="<%=arr1(1,i)%>"; 就正确
非常感谢ice_berg16(寻梦的稻草人)!!
aniude 2005-06-20
  • 打赏
  • 举报
回复
狂晕!!!!!
lilu207 2005-06-20
  • 打赏
  • 举报
回复
非常感谢ice_berg16(寻梦的稻草人)!!~~
但 为什么下面的正确:
ii=0;
<%for i=0 to ni-1%>
ssarr1[ii]=<%=arr1(0,i)%>;
ii=ii+1;
<% next %>
这样就错误了呢?
ii=0;
<%for i=0 to ni-1%>
ssarr1[ii]=<%=arr1(0,i)%>;
ssarr2[ii]=<%=arr1(1,i)%>;
ii=ii+1;
<% next %>

敬请回复,感激不尽!
ice_berg16 2005-06-17
  • 打赏
  • 举报
回复
当然是这种情况,你又没在server端循环。
你应该在server端做循环
for (i=0; i<j; i++)
{
ssarr1[ii]=<%=arr1(0,ii)%>; //将多维数组arr1(0)的值赋值给数组
ssarr2[ii]=<%=arr1(1,ii)%>; //将多维数组arr1(1)的值赋值给数组
ii++; //但查看源文件时发现循环好像没执行
}
=>
<%for i=0 to ni%>
ssarr1[ssarr1.length]=<%=arr1(0,i)%>;
<%
next
%>

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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