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

History.backの前の処理について   moniさん [2002/10/11 0:25:23] [2789]
  Re:History.backの前の処理について   北岳さん [2002/10/15 10:07:38] [2801]

[2789] History.backの前の処理について
投稿者:moniさん 2002/10/11 0:25:23
はじめまして。いつも参考にさせていただいています。
[処理内容]
Aページの次へボタンを押すとDBに"1"を書き込みBページへ遷移します。Bページの戻るボタンを押下後DBのレコードを全て削除しAページへ戻るという処理になります。

しかしhistory.backの前に書いた処理が反映されないで前の画面へ戻ってしまうのですが原因がわかりません。

-a.asp------------
<%@ LANGUAGE="VBSCRIPT" %>
<HTML>
<HEAD><TITLE></TITLE>
</HEAD>
<BODY>
<form name="frmMain" method ="post" action="b.asp">
<input type="submit" value="次へ">
</form>

</BODY>
</HTML>

-b.asp--------

<%@ LANGUAGE="VBSCRIPT" %>

<%
Set cn=Server.CreateObject("ADODB.Connection")
cn.Open "manage"

'DBに1をセット
strsql="insert into tbl_flg values('1')"

Set rs =cn.Execute(strsql)

Set rs=Nothing
Set cn=Nothing

%>
<HTML>
<HEAD><TITLE>b</TITLE>

<script language="vbscript">

Sub PS_Back()

'DBレコード削除
document.frmsub.method="POST"
document.frmsub.action="inc.asp"
document.frmsub.submit()

history.back

End Sub

</script>

</HEAD>
<BODY>

<form name="frmsub" action="">
<input type="button" name=btnback value="戻る" Onclick="PS_Back()">
</form>
</BODY>
</HTML>

--inc.asp------
<%@ LANGUAGE="VBSCRIPT" %>

<%
Set cn=Server.CreateObject("ADODB.Connection")
cn.Open "manage"

strsql="delete from tbl_flg"

Set rs =cn.Execute(strsql)

Set rs=Nothing
Set cn=Nothing

%>

のように書いてみたのですが・・・
ちなみにhistory.backをコメントアウトすると前に戻りませんが正常に処理されます。

追)Response.Redirectは使用しないであくまでもhistory.backを使用したいのです。
理由は実際のAページには多くの条件で絞ったレコードの一覧が表示されている状態なのでそのまま戻りたいのです。(怠慢ですみません・・・)
どなたか対応策をご教授いただければ助かります。

[2801] Re:History.backの前の処理について
投稿者:北岳さん 2002/10/15 10:07:38
a.asp のユーザ記載内容をb.aspから戻っても残すようにするには、
例えば a.asp 内に
<input type="text" name="txt1" value="<%= session('a') %">
のように書き、b.asp で
session("a")=Request.form("txt1")
のようにsession変数に代入すれば可能です。
 
-----------------
本題の方は、ちょっと試験してみたところ、自分もこんぐらがってきました。
この処理の流れは
 
(1) a.asp内のフォームにユーザが必要事項を記載後、postで b.aspに飛ぶ
(2) b.aspでは真っ先にtbl_flgフィールドに"1"を書く。
(3) ユーザが「戻る」を押すと、b.asp内の関数の
 [ア] 上3行で inc.asp に sumbit してから、
 [イ] 4行目の history.back により、a.asp に戻る。
(4) b.asp から飛んだ inc.asp の方では、先程書いた"1"のデータを削除する。
(実際はstrsql文内に WHERE句 がないので、全フィールド削除。)
 inc.asp 内からはどこにも飛ばない。
 
[ア] で inc.asp に飛んでしまったあとの[イ]は実行されない気がしたのですが、
b.asp の4行目、history.back の前に msgbox("戻ります") を置いたら、表示されました。
 
(1つのaspから2個所に分岐して飛べる?
1個所にしか飛べないはずですが、どうなっているんですかね。。。)



TreeBBS For ASP V.0.1.3
Program By YasNet