出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
![]() ![]() ![]() |
[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 |