您的位置:程序门 -> web 开发 -> asp



50分求解asp一小问题,急!!!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


50分求解asp一小问题,急!!![已结贴,结贴人:bigfocus]
发表于:2007-02-27 16:04:26 楼主
小弟有一网站,头部一导航栏是这样的:
<div   id= "topmenu ">  
            <ul>
                <li   id= "checked "> <a   href= "index.asp "> 首   页 </a> </li>
                <li> <a   href= "enterprise/index.asp "> 企业服务 </a> </li>
                <li> <a   href= "user/index.asp "> 个人服务 </a> </li>
<li> <a   href= "yingjie.asp "> 校园招聘 </a> </li>
<li> <a   href= "news/index.asp "   target= "_blank "> 职场指南 </a> </li>
<li> <a   href= "blog/index.asp "   target= "_blank "> 人才播客 </a> </li>
            </ul>
</div>

我所有页面的头部都是这样的,唯一的区别就是当我访问哪个栏目的时候,该栏目名称的样式就是这样:
<li   id= "chenked "> 这里是栏目名称 </li>
比如当我访问“校园招聘”的时候,代码就是这样:
<li   id= "checked "> <a   href= "yingjie.asp "   target= "_blank "> 校园招聘 </a> </li>
即该 <li> 的样式为id= "checked ",否则该 <li> 样式为空

因为所有页面的头部都是这样的,而且我也不想每个栏目都做一个头部文件,我就是想如何用asp语句来实现,请问各位路过的达人如何实现???

在线等,急用。先谢了~~~
发表于:2007-02-27 16:23:391楼 得分:5
我的方法比较土,希望有高人再次指点
我的方法是
<div   id= "topmenu ">  
            <ul>
                <li   <%if   request( "check ")= " "   or   request( "check ")=1     then%>   id= "checked "   <%end   if%> > <a   href= "index.asp?check=1 "> 首   页 </a> </li>
                <li   <%if   request( "check ")=2   then%> id= "checked " <%end   if%> > <a   href= "enterprise/index.asp?check=2 "> 企业服务 </a> </li>
                <li   <%if   request( "check ")=3   then%> id= "checked " <%end   if%> > <a   href= "user/index.asp?check=3 "> 个人服务 </a> </li>
<li   <%if   request( "check ")=4   then%> id= "checked " <%end   if%> > <a   href= "yingjie.asp?check=4 "> 校园招聘 </a> </li>
<li   <%if   request( "check ")=5   then%> id= "checked " <%end   if%> > <a   href= "news/index.asp?check=5 "   target= "_blank "> 职场指南 </a> </li>
<li   <%if   request( "check ")=6   then%> id= "checked " <%end   if%> > <a   href= "blog/index.asp?check=6 "   target= "_blank "> 人才播客 </a> </li>
            </ul>
</div>
发表于:2007-02-27 16:29:112楼 得分:0
楼主思路错了,用onmouseover和onmouseout就行了的
发表于:2007-02-27 16:33:163楼 得分:5
<%action=trim(request( "action "))
if   action= "a "   then   checka= "id= 'checked ' "
if   action= "b "   then   checkb= "id= 'checked ' "
if   action= "c "   then   checkc= "id= 'checked ' "
if   action= "d "   then   checkd= "id= 'checked ' "
if   action= "e "   then   checke= "id= 'checked ' "
if   action= "f "   then   checkf= "id= 'checked ' "   %>
<div   id= "topmenu ">  
            <ul>
                <li   <%=checka%>   > <a   href= "index.asp?action= 'a '   "> 首   页 </a> </li>
                <li   <%=checkb%> > <a   href= "enterprise/index.asp?action= 'b ' "> 企业服务 </a> </li>
                <li   <%=checkc%> > <a   href= "user/index.asp?action= 'c ' "> 个人服务 </a> </li>
<li   <%=checkd%> > <a   href= "yingjie.asp?action= 'd ' "> 校园招聘 </a> </li>
<li   <%=checke%> > <a   href= "news/index.asp?action= 'e ' "   target= "_blank "> 职场指南 </a> </li>
<li   <%=checkf%> > <a   href= "blog/index.asp?action= 'f ' "   target= "_blank "> 人才播客 </a> </li>
            </ul>
</div>
发表于:2007-02-27 16:53:044楼 得分:5

我给你说个简单的方法

<li   id= "menu1 "> 首   页 </li>
<li   id= "menu2 "> 企业服务 </li>
<li   id= "menu3 "> 个人服务 </li>
..........

下面加个这

<style   type= "text/css ">
#menu <%=request( "check ")%>
{
            这里写上特殊标记的   样式
}
</style>
发表于:2007-02-27 17:59:055楼 得分:0
jiangsh100(著名菜鸟),我的思路没有错,是你理解错了,呵呵~~~~~

楼上的几位出的办法,还有没更简单点的???
发表于:2007-02-28 15:33:396楼 得分:0
上面的方法除了第一种有效,其他的都不行啊。。。。。。。。。。

第一种方法中除了后缀加上“?check=1”之外还有其他的吗???,这种方法好像对搜索引擎不是很适合的。。。

哪位达人再出些新点子???
发表于:2007-02-28 17:27:037楼 得分:0
在栏目的asp文件开始的时候用session或者cookie标记一个栏目名称的值
接着判断是哪个栏目,并给相应的栏目id标识为checked.
关键代码如下:

这是每个栏目的asp文件里的
......

session( "this ")= "首页 "     '定义栏目值,比如这个是加在首页文件里的。

......

这个是加在公共头部asp文件里的判断:
<div   id= "topmenu ">  
            <ul>
                <li <%if   session( "this ")= "首页 "   then%>   id= "checked " <%end   if%> > a   href= "index.asp "> 首   页 </a> </li>
                <li <%if   session( "this ")= "企业服务 "   then%>   id= "checked " <%end   if%> > <a   href= "enterprise/index.asp "> 企业服务 </a> </li>
                <li <%if   session( "this ")= "个人服务 "   then%>   id= "checked " <%end   if%> > <a   href= "user/index.asp "> 个人服务 </a> </li>
<li <%if   session( "this ")= "校园招聘 "   then%>   id= "checked " <%end   if%> > <a   href= "yingjie.asp "> 校园招聘 </a> </li>
<li <%if   session( "this ")= "职场指南 "   then%>   id= "checked " <%end   if%> > <a   href= "news/index.asp "   target= "_blank "> 职场指南 </a> </li>
<li <%if   session( "this ")= "人才播客 "   then%>   id= "checked " <%end   if%> > <a   href= "blog/index.asp "   target= "_blank "> 人才播客 </a> </li>
            </ul>
</div>
发表于:2007-02-28 18:05:598楼 得分:0
上面的办法仍然比较笨拙。刚想到了一个更好的办法
就是用request的servervariables属性中的path_info参数
也就是用request.servervariables( "path_info ")来获取客户所请求也就是要打开的页面
request.servervariables( "script_name ")的返回值是一个路径地址
完整代码如下:
......
<%
dim   rname
rname=request.servervariables( "path_info ")
%>
<div   id= "topmenu ">  
            <ul>
                <li <%if   rname= "完整地址 "   then%>   id= "checked " <%end   if%> > a   href= "index.asp "> 首   页 </a> </li>
                <li <%if   rname= "完整地址 "   then%>   id= "checked " <%end   if%> > <a   href= "enterprise/index.asp "> 企业服务 </a> </li>
                <li <%if   rname= "完整地址 "   then%>   id= "checked " <%end   if%> > <a   href= "user/index.asp "> 个人服务 </a> </li>
<li <%if   rname= "完整地址 "   then%>   id= "checked " <%end   if%> > <a   href= "yingjie.asp "> 校园招聘 </a> </li>
<li <%if   rname= "完整地址 "   then%>   id= "checked " <%end   if%> > <a   href= "news/index.asp "   target= "_blank "> 职场指南 </a> </li>
<li <%if   rname= "完整地址 "   then%>   id= "checked " <%end   if%> > <a   href= "blog/index.asp "   target= "_blank "> 人才播客 </a> </li>
            </ul>
</div>
......

把标记有完整地址的地方修改成相对应的完整地址就ok了
比如说首页修改成:/index.asp;人才播客要修改成:/blog/index.asp
发表于:2007-02-28 18:08:599楼 得分:5
建个栏目数组(或从xml文件,   数据库中读入栏目数组),   把栏目名和url联系起来.循环写出头部.循环中判断request.servervariables( "path_info ")
字符串与栏目名( "/ "   +   目录路径   +   "/ ")是否有匹配.有则变.这样即可.唯一的要求是:你的栏目必须建立相应的目录.
发表于:2007-02-28 22:32:2010楼 得分:0
楼上有能否说得更详细点???
我给你发消息了,不知你有没看到???
发表于:2007-02-28 23:12:4711楼 得分:0
apoet的方法固然是好,但我想比如当用户访问enterprise目录下所有的文件时都能实现这种效果:
<li   id= "checked "> <a   href= "enterprise/enterprise目录下任一文件名 "> 企业服务 </a> </li>

不知可否,还望指点一二,希望xie_yanke(谢烟客)   能给出详细的答复,谢谢了~~~
发表于:2007-03-01 03:37:3712楼 得分:0
测试:   依照以下测试栏目分别建相应的目录,把这个源文件另存为test.asp,   分别copy到根,和相应目录下,点击链接测试.

实用时,   照此改写你的头部引用页.   但这仍要求您的所有栏目都应建立相应的目录,以便于检查.
<%
dim   arrmenu(1)
arrmenu(0)   =   array( "栏目一 ",   "/channel/item/test.asp ")
arrmenu(1)   =   array( "栏目二 ",   "/item/test.asp ")

dim   currentpath
currentpath   =   replacepath(request.servervariables( "path_info "))

with   response
.write   (currentpath)
.write   ( " <table> <tr> ")
for   i   =   0   to   ubound(arrmenu)
dim   curpath
curpath   =   replacepath(arrmenu(i)(1))

if   instr(currentpath,   curpath)   =   1   then   curmenucolor   =   "#d5d5d5 "   else   curmenucolor   =   "#ffffff "
.write   ( " <td   bgcolor= " " "   &   curmenucolor   &   " " "> <a   href= " " "   &   arrmenu(i)(1)   &   " " "> "   &   arrmenu(i)(0)   &   "   :   "   &   arrmenu(i)(1)   & " </a> </td> "   &   vbcrlf)
next
.write   ( " </tr> </table> "   &   vbcrlf)
end   with

function   replacepath(str)
dim   tmp
tmp   =   str
if   tmp   =   " "   then   replacepath   =   "/ "   :   exit   function
tmp   =   left(tmp,   instrrev(tmp,   "/ "))
if   right(tmp,   1)   <>   "/ "     then   tmp   =   tmp   &   "/ "
replacepath   =   tmp
end   function
%>
发表于:2007-03-01 08:26:2313楼 得分:5
<%
function   mchecked()
tcheck=request( "check ")
select   case   tcheck
    case   "1 "
          aa= "id= 'checked ' "
          response.write   aa
    case   "2 "
        aa= "id= 'checked ' "
        response.write   aa
    case   "3 "
        aa= "id= 'checked ' "
        response.write   aa
    case   "4 "
        aa= "id= 'checked ' "
        response.write   aa
    case   "5 "
        aa= "id= 'checked ' "
        response.write   aa
    case   "6 "
        aa= "id= 'checked ' "
        response.write   aa
end   select
end   function
%>
<li   <%=mchecked%> > <a   href= "index.asp?check=1 "> 首   页 </a> </li>
其它的类似
发表于:2007-03-01 23:00:3714楼 得分:25
办法倒是有一个
就是用server.mappath( "./ ")来代替request.servervariables( "path_info ")
利用获取的绝对路径来判断文件夹的位置从而确定当前文件所在的目录
具体代码方面会有一些小的变动,相信你知道足能搞定,我就不废话了


快速检索

最新资讯
热门点击