出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

イメージリンク時にスクリプト実行   ouさん [2003/07/10 14:33:23] [3491]
  Re:イメージリンク時にスクリプト実行   暇人さん [2003/07/10 18:19:31] [3496]
    Re:イメージリンク時にスクリプト実行   ouさん [2003/07/10 20:56:16] [3498]
      Re:結局   ouさん [2003/07/11 11:19:47] [3499]

[3491] イメージリンク時にスクリプト実行
投稿者:ouさん 2003/07/10 14:33:23
いつも参考にさせて頂いてます。

●状況
登録画面で登録が実行されると、完了画面が表示されます。
完了画面で、
ツールバーの「戻る」ボタンが押された時、
「トップへ戻る」というイメージがクリックされた時 の処理で悩んでいます。

「戻る」ボタンが押された時は、登録画面を表示させないように完了画面で
セッション変数(page)に"fin"をセットしました。
登録画面に戻ったとき、この変数を参照して表示内容を変更し、トップへ戻るように
促しています。また、この変数もここで破棄しています。

「トップへ戻る」というイメージにはリンク設定しています。
イメージをクリックするとトップページへ画面は遷移するのですが、セッション変数を
破棄することができません。

「戻る」ボタンではうまくいったのですが、イメージクリックでは、セッション変数が
破棄されていない為、再度トップから登録画面に来ても通常の内容が表示されません。
セッション変数を破棄させる処理をどこにどのように書けば良いのでしょうか?

●ソース
*** A.asp(登録画面)********************************************
<%@ language="VBScript" codepage="932" %>
<% Option Explicit
Response.Buffer = True
Response.Expires = -1
Response.AddHeader "Pragma", "no-cache"
Response.AddHeader "cache-control", "no-store"
%>
<%
'*** ページ遷移元チェック***
If Session("page") = "fin" then
Session.Contents.Remove("page")
Call NG_Page
End If
%>
<HTML>
'通常の表示
</HTML>
<%
Sub NG_Page()
%>
<HTML>
'完了ページから遷移時に表示
     トップページはここから戻ってください。
</HTML>
<%
Response.End
End Sub
%>

***B.asp (完了画面)********************************************
<%@ language="VBScript" codepage="932" %>
<%
'セッション変数(page)セット
Session("page") = "fin"
%>
<HTML>
<BODY>
登録完了しました。
<TABLE width="600" cellspacing="5" border="0">
<TR>
<TD width="600" align="center">
<A href="top.asp"><IMG src="top.gif" width="103" height="24" border="0" name="top"></A>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>

[3496] Re:イメージリンク時にスクリプト実行
投稿者:暇人さん 2003/07/10 18:19:31
どうもです。暇人です

1、top.asp?flag=1
リンク先を上記の用にしてRequest.QueryStringで受け取り
=1で
top.aspでSession.Abandan

2、session_delete.asp
上記のような別ASPへtop.aspの代わりに飛ばし、そこで
Session.Abandan後Response.RedirectなりServer.Transfer
なりServer.Executeなりでtop.aspへ自動で戻る
ほとんど一瞬な上、全てサーバー側のみで処理されるためクライアント
には直接topへ戻った様に見える。

なお、Session.Abandanはサーバーサイドスクリプト実行後に行われるので
デバッグの際に、消えて無い。と勘違いしない様に注意する。ちゃんとtopから違う所に行けば消えてます。

[3498] Re:イメージリンク時にスクリプト実行
投稿者:ouさん 2003/07/10 20:56:16
暇人さん、レスありがとうございます。

書いて頂いた1と似てるのですが、
リンクはtop.aspのみにして、top.aspで Session.Contnts.Remove("page") としていました。
セッション変数はpageの他にも宣言していて、page以外は破棄したくないので、Removeしてます。
1の方法のように、top.aspでRemoveするのがスマートだと思うのですが、
top.aspに記述しない方法でと上司に言われてしまったのです。

となると、2の方法ですよね。
これも上司に提示してみたのですが、それだけのためにファイルを作るのは…と言われてしまいました。
でもこれ以外に方法なんてないですよね?

[3499] Re:結局
投稿者:ouさん 2003/07/11 11:19:47
結局1のように、top.asp内に一文記述することで了解を得ることができました。
暇人さん、ありがとうございました。



TreeBBS For ASP V.0.1.3
Program By YasNet