这样为啥不行?

csover8 2006-07-24 08:58:00
<SCRIPT language=javascript>
<!--
function menu_display(t_id,i_id){//显示隐藏程序
var t_id;//表格ID
var i_id;//图片ID
var on_img="../Images/tree_folder3.gif";//打开时图片
var off_img="../Images/tree_folder4.gif";//隐藏时图片
if (t_id.style.display == "none") {//如果为隐藏状态
t_id.style.display="";//切换为显示状态
i_id.src=on_img;//换图
}
else{//否则
t_id.style.display="none";//切换为隐藏状态
i_id.src=off_img;
}//换图

}

-->
</SCRIPT>
<td width="160" height="22" onClick=javascript:menu_display(table1,img1);><img id=img1 src="../Images/tree_folder3.gif" width="15" height="15>玩具车</td>
<td>玩具车</td>
</tr>

<TBODY id=table1>
<tr><td width="160" height="22">  <img src="../Images/tree_folder3.gif" width="15" height="15">玩具枪</td>
<td>玩具枪</td></tr>
</tbody>

上头的代码:玩具车与玩具枪是硬编码的话,可以正常显示与隐藏的,但如果是从数据里调用的话,就会出现script error出错.是怎么一回事呢?谢谢!急呢!
...全文
159 9 打赏 收藏 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
csover8 2006-07-24
  • 打赏
  • 举报
回复
试过了,还是不行啊..晕!
「已注销」 2006-07-24
  • 打赏
  • 举报
回复
改两个地方:
1:交换次序
<%
i=1
do while not rsBigClass.eof
%>
2: <%
rsSmallClass.movenext
loop
end if
rsSmallClass.close
set rsSmallClass=nothing
rsBigClass.movenext
i=i+1
loop
%>

把i=i+1移到小类的循环里,loop前面

<%
rsSmallClass.movenext
i=i+1
loop
end if
rsSmallClass.close
set rsSmallClass=nothing
rsBigClass.movenext

loop
%>
csover8 2006-07-24
  • 打赏
  • 举报
回复
我按你说的这样子改了,还是提示script error

<table width="500" border="0" cellpadding="0" cellspacing="1" bgcolor="#000000" class="border">
<tr bgcolor="A4B6D7" class="title">
<td width="160" height="25" align="center"><strong>栏目名称</strong></td>
<td width="251" height="20" align="center"><strong>操作选项</strong></td>
</tr>
<%
do while not rsBigClass.eof
i=1
%>
<tr bgcolor="ECF5FF" class="tdbg">
<td width="160" height="22" onClick=javascript:menu_display(table<%=i%>,img<%=i%>);><img id=img<%=i%> src="../Images/tree_folder3.gif" width="15" height="15"><%=rsBigClass("C_BigClassName")%></td>
<td align="center"><a href="ClassAddSmall.asp?C_BigClassName=<%=rsBigClass("C_BigClassName")%>">添加子栏目</a>
| <a href="ClassModifyBig.asp?BigClassID=<%=rsBigClass("BigClassID")%>">修改</a>


| <a href="ClassDelBig.asp?C_BigClassName=<%=rsBigClass("C_BigClassName")%>" onClick="return ConfirmDelBig();">删除</a></td>
</tr>
<%
set rsSmallClass=server.CreateObject("adodb.recordset")
rsSmallClass.open "Select * From SmallClass Where C_BigClassName='" & rsBigClass("C_BigClassName") & "'",conn,1,3
if not(rsSmallClass.bof and rsSmallClass.eof) then
do while not rsSmallClass.eof
%>
<TBODY id=table<%=i%>>
<tr bgcolor="#E3E3E3" class="tdbg">
<td width="160" height="22">  <img src="../Images/tree_folder3.gif" width="15" height="15"><%=rsSmallClass("C_SmallClassName")%></td>
<td align="center">            
<a href="ClassModifySmall.asp?SmallClassID=<%=rsSmallClass("SmallClassID")%>">修改</a>
| <a href="ClassDelSmall.asp?SmallClassID=<%=rsSmallClass("SmallClassID")%>" onClick="return ConfirmDelSmall();">删除</a></td>
</tr>
</TBODY>

<%
rsSmallClass.movenext
loop
end if
rsSmallClass.close
set rsSmallClass=nothing
rsBigClass.movenext
i=i+1
loop
%>
</table></td>
</tr>
</table>

CSS加载,不会错的...javascript没改,为何还不行啊?
「已注销」 2006-07-24
  • 打赏
  • 举报
回复
你的大类和小类都不止一条吧?

初步猜测是Id冲突了。每个id在一个页面只能有一个,如果指定了多个元素为同一个id,js不能正常执行,css能否正常被应用不清楚~没试过

你需要做的是,给在大类和小类的循环里至少放一个计数器i,然后
img id=img<%=i%>
tbody id=table<%=i%>

在使用展开和隐藏时,把当前id直接传入展开和隐藏函数
csover8 2006-07-24
  • 打赏
  • 举报
回复
<table width="500" border="0" cellpadding="0" cellspacing="1" bgcolor="#000000" class="border">
<tr bgcolor="A4B6D7" class="title">
<td width="160" height="25" align="center"><strong>栏目名称</strong></td>
<td width="251" height="20" align="center"><strong>操作选项</strong></td>
</tr>
<%
do while not rsBigClass.eof
%>
<tr bgcolor="ECF5FF" class="tdbg">
<td width="160" height="22" onClick=javascript:menu_display(table1,img1);><img id=img1 src="../Images/tree_folder3.gif" width="15" height="15"><%=rsBigClass("C_BigClassName")%></td>
<td align="center"><a href="ClassAddSmall.asp?C_BigClassName=<%=rsBigClass("C_BigClassName")%>">添加子栏目</a>
| <a href="ClassModifyBig.asp?BigClassID=<%=rsBigClass("BigClassID")%>">修改</a>


| <a href="ClassDelBig.asp?C_BigClassName=<%=rsBigClass("C_BigClassName")%>" onClick="return ConfirmDelBig();">删除</a></td>
</tr>
<%
set rsSmallClass=server.CreateObject("adodb.recordset")
rsSmallClass.open "Select * From SmallClass Where C_BigClassName='" & rsBigClass("C_BigClassName") & "'",conn,1,3
if not(rsSmallClass.bof and rsSmallClass.eof) then
do while not rsSmallClass.eof
%>
<TBODY id=table1>
<tr bgcolor="#E3E3E3" class="tdbg">
<td width="160" height="22">  <img src="../Images/tree_folder3.gif" width="15" height="15"><%=rsSmallClass("C_SmallClassName")%></td>
<td align="center">            
<a href="ClassModifySmall.asp?SmallClassID=<%=rsSmallClass("SmallClassID")%>">修改</a>
| <a href="ClassDelSmall.asp?SmallClassID=<%=rsSmallClass("SmallClassID")%>" onClick="return ConfirmDelSmall();">删除</a></td>
</tr>
</TBODY>

<%
rsSmallClass.movenext
loop
end if
rsSmallClass.close
set rsSmallClass=nothing
rsBigClass.movenext
loop
%>
</table></td>
</tr>
</table>

这个是要显示与隐藏的代码.上头的JS代码就不再列出了..如果记录有几条,
那img id=1还有tbody id=table1这个如何动态的呢?JS又该如何改呢?谢谢!
「已注销」 2006-07-24
  • 打赏
  • 举报
回复
1,数据库的字段中含有<> " ' 之类的引起html混乱的字符

2,数据库的字段本身读出来的字符是乱码,和当前页面不符

3,待验证。楼主需要把自己的从数据库调用并显示的代码写出来
csover8 2006-07-24
  • 打赏
  • 举报
回复
大哥,我缩短了代码的,只有一行或者是几行的硬编码的话,可以正常显示与隐藏与显示,但如果是从数据库中取出数据的话,那这两行代码应该怎么改呢?
onClick=javascript:menu_display(table1,img1)
<img id=img1 .....>
<TBODY id=table1>...</tbody>

????
fosjos 2006-07-24
  • 打赏
  • 举报
回复
src="../Images/tree_folder3.gif" width="15" height="15>玩具车</td>
改成
src="../Images/tree_folder3.gif" width="15" height="15">玩具车</td>

上下少了 <table><tr>和</table>
csover8 2006-07-24
  • 打赏
  • 举报
回复
顶一下.

28,402

社区成员

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

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