CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

如何判断当前页面是在1.asp还是在2.asp?

楼主mustapha(O~U Gain)2002-10-09 10:12:59 在 Web 开发 / ASP 提问

<%if     rst3.Fields(1)<>0   then%>  
  <script   language=vbscript>  
  i   =   msgbox("当天有记录,还要继续吗?",vbokcancel,"警告")  
  if   i   <>1   then    
  history.go(-2)  
  end   if  
  </script>  
  <%end   if%>   后面的代码是更新数据库的内容  
  这段代码提示当当天的记录不为空时,出现警告提示,如用户选ok(即i=1)则更新数据库的内容。当选cancel时(i<>1),则执行history.go(-2)操作。问题是转向页面后照样更新数据库,我想在这段代码和更新数据库的代码之间插入一判断当前页面代码,来决定是否更新数据库。  
  这问题我以前提过,有高手曾经回答过,但我没问清楚就把帖子给结了。现在重开一贴,希望能解我燃眉之急 问题点数:100、回复次数:19Top

1 楼meizz(梅花雪)回复于 2002-10-09 10:22:13 得分 20

<script   language=javascript>  
  var   tmp   =   self.location.href;  
          tmp   =   tmp.split("/");  
          alert(tmp[tmp.length-1]);     可得到当前网页的名字  
  </script>Top

2 楼dawsons(dawsons)回复于 2002-10-09 10:23:04 得分 10

你可以把更新数据库内容的代码做成个FUNCTION啊,然后在前面IF里判断i=1的时候调用这个function.Top

3 楼hjbwt(地主)回复于 2002-10-09 10:30:04 得分 10

只能用客户端脚本才能得到当前页面的url,用asp程序是的不到的,我看你只能像其他办法了,你可以设定一个标志,如果有的话,就更新,没有就不用更新,改标志通过脚本语言确定后用window.location.href的方式传递就行了Top

4 楼mustapha(O~U Gain)回复于 2002-10-09 10:55:59 得分 0

to   dawsons:  
  是咋写的?  
  <%if   i=1   then  
  aaa  
  end   if  
  %>  
  <%function   aaa{  
  更新数据库的代码}  
  %>   提示<%function   aaa{这一行不对  
  to   地主:你这说的应该有道理,因为上次我问时那位高手也是这么说的,能详细些吗?  
  Top

5 楼BrightEye(男儿当自强,靠别人不如靠自己)回复于 2002-10-09 11:16:15 得分 5

楼顶的就可以啊.Top

6 楼superhasty(鸟儿自空中飞过)回复于 2002-10-09 11:56:59 得分 5

strURL=Request.ServerVariables("PATH_INFO")  
  response.write   strURL   '当前页面的URLTop

7 楼Zygodactyous(Zygodactylous)回复于 2002-10-09 12:14:44 得分 5

其实用不着判断页面这么麻烦,只要把你语句做一个改动即可:  
  <%  
              if     rst3.Fields(1)<>0   then  
  %>  
  <script   language=vbscript>  
              i   =   msgbox("当天有记录,还要继续吗?",vbokcancel,"警告")  
              if   i   <>1   then    
                      history.go(-2)  
              end   if  
  </script>  
  <%  
                      Response.End   '这是关键  
              end   if  
  %>    
   
  要完全了解ASP语句的执行顺序与过程,你的问题是在执行了history.go(-2)时,end   if后面更改数据库的语句也执行了,只要在end   if前加一个Response.End就行了。Top

8 楼hzpike(pike)回复于 2002-10-09 13:19:14 得分 5

str=Request.ServerVariables("PATH_INFO")  
  if   instr(str,"1.asp")<>0   then    
        xxxxx  
  else  
          xxxxTop

9 楼mustapha(O~U Gain)回复于 2002-10-09 14:28:54 得分 0

to   梅花雨   and   问个不休:   这个效果虽然能弹出框显示在什么页面,但由于Asp的执行顺序:Asp先执行服务器端代码,生成的Html送到客户端的时候已经没有服务器端代码了。所以在script中客户端程序的返回值tmp不能由我的<%%>内的服务器端判断程序调用。dwoson的调用函数的也是如此,因为函数中的程序是服务端的数据库更新程序。    
  to   zygodactyous:你这样一做,即使i=1不也被response.end了吗?  
  to   地主:你所说的标志是不是指不用msgbox,用表单?  
  总之,我现在能够判断当前所属页面,但由于asp执行的先后顺序,客户端判断出的结果不能被服务器端所用。要不只有放弃msgbox,再做一个表单,这样能返回值,但不好看,而且上一个表单request的数据没办法取得。有什么好办法吗?Top

10 楼mustapha(O~U Gain)回复于 2002-10-09 15:25:40 得分 0

upTop

11 楼zhusuhao(不以为然)回复于 2002-10-09 15:47:34 得分 10

<script   language=javascript>  
  if(top.main.location.toString().toLowerCase().indexOf("transaction/transaction.asp")!=-1)  
  {  
  top.main.location.reload();  
  }  
  </script>  
  这是我在框架页面的main中判断是否transaction/transaction.asp来决定是否刷新时用的代码。对你应该有用。Top

12 楼mustapha(O~U Gain)回复于 2002-10-09 18:25:19 得分 0

我现在索性不要msgbox,做了一个表单,应该是比较简单的  
  前一个页面:caiyou=Request.Form("caiyou")  
  <%if   rst3.Fields(1)<>0   then%>   '如果数据不为0,则出现表单问判断是否覆盖数据,做一个隐藏的东西来传caiyou的值。  
  <form   name="form1"   method="post"   action="queding.asp">  
      <p>已有当天数据。确定是否要覆盖数据?</p>  
      <p>    
          <input   type=hidden   name="caiyou"   value="<%Request.form("caiyou")%>">  
          <input   type="radio"   name="panduan"   value="yes"   checked>  
          是    
          <input   type="radio"   name="panduan"   value="no">  
          否  
      </p>  
      <p>    
          <input   type="submit"   name="submit"   value="确定">  
      </p>  
  </form>  
  后一个菜单queding.asp:<%response.write   caiyou   &"aaa"   %>   但返回出来的值是"aaa"。这是怎么回事?Top

13 楼Iamfish(呆鱼)回复于 2002-10-09 18:57:45 得分 10

我倒!  
  看看结果是什么  
  <%  
  ScriptName=mid(request.ServerVariables("SCRIPT_NAME"),InStrRev(request.ServerVariables("SCRIPT_NAME"),"/"))  
   
  response.write   ScriptName  
   
  %>  
   
  Top

14 楼chonboy(一只来自南方的羊)回复于 2002-10-09 21:28:34 得分 10

服务端  
  当前页面文件名称:Request.ServerVariables("SCRIPT_NAME")  
  前页页面文件名称:Request.ServerVariables("HTTP_REFERER")  
   
  客户端  
  当前页   window.location.href  
   
  分析获取的字符串,即可判断页面Top

15 楼wxb80(苦凡)回复于 2002-10-10 01:21:29 得分 0

好深噢哦Top

16 楼mustapha(O~U Gain)回复于 2002-10-10 09:35:14 得分 0

鱼兄弟和羊兄弟,你们误解了我最近一次的问题。由于Asp的执行顺序:Asp先执行服务器端代码,生成的Html送到客户端的时候已经没有服务器端代码了。所以在script中客户端程序的返回值不能由我的服务器端判断程序调用,因此我虽然可以判断当前所处的页面,但判断出的值不能返回到服务器端。  
  由于这个办法不可行,我只能用其他的方法。我现在想到的方法是:第一个文件  
  输入数据.asp,内有一个表单,数据以post的方式传到第二个文件   中间.asp,第二个文件也有一个表单,中间有同名的两个单选框,“是”和“不是”,还有一些隐藏的东西来把第一个文件传来的数据来传到第三个文件。  
  <input   type=hidden   name="caiyou"   value="<%Request.form("caiyou")%>">  
  在第三个文件中,根据同名的单选框的值是“是”还是“不是”来决定是否更新数据库,如确定更新数据库,则更新所需的值在传来的隐藏的东西里。  
  现在我发现第一个文件到第二个文件的传送没问题,而第二个文件到第三个文件传送出现问题,包括单选框的值,没有一个能传送到第三个文件。这是怎么回事?  
  SOS!!!Top

17 楼qimangxing(徐家庄的七芒星)回复于 2002-10-10 10:02:58 得分 10

<input   type=hidden   name="caiyou"   value="<%Request.form("caiyou")%>">  
  改成:  
  <input   type=hidden   name="caiyou"   value="<%=Request.form("caiyou")%>">  
  试一下,我也不大理解你的问题,我晕。。。。。。Top

18 楼mustapha(O~U Gain)回复于 2002-10-10 10:32:46 得分 0

我看出来了,是我的两个单选框“是”,“否”出现了问题。其实这个和聊天室里男和女的性别选择一样。如果用下拉列表框我会做,但在这个程序中最好用单选框,该怎么做?关键是怎么判断?  
  Top

19 楼mustapha(O~U Gain)回复于 2002-10-10 12:02:28 得分 0

是这个问题。我解决了。还是要感谢大家的热心帮助。现在给分Top

相关问题

  • 在ASP页面中做判断
  • 一个asp页面,可以判断它的父页面吗?
  • twebbrowser 怎么判断当前浏览页面不为空页面???????
  • 用JAVASCRIPT判断当前页面刷新还是关闭
  • 如何判断当前页面是否位于框架内?
  • 怎么用js来判断当前打开页面是新开的还是在原来页面上的?
  • 如何在载入页面时,根据条件判断后对当前载入页面进行刷新
  • 如何判断当前页面是不是从上一个页面后退回来的?
  • 请问如何判断webbrowser中当前打开的页面有向前和向后的页面?
  • asp页面,如何判断一个name为selected的控件是否存在?

关键词

  • 页面
  • 代码
  • 数据库
  • 文件
  • 服务器
  • 执行
  • 客户
  • 数据
  • asp
  • 判断

得分解答快速导航

  • 帖主:mustapha
  • meizz
  • dawsons
  • hjbwt
  • BrightEye
  • superhasty
  • Zygodactyous
  • hzpike
  • zhusuhao
  • Iamfish
  • chonboy
  • qimangxing

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo