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

[1100] 【解答例その3】再帰呼出法
投稿者:北岳さん 2001/11/27 18:17:04
>最初の画面で、form情報を入力するわけですが、今回はいったん
>他のところに飛ばしてから、飛ばしたい画面にいきましたよね。
>それを最初の画面だけで判定して次の画面に飛ばすことはできるのでしょうか?
 
再帰呼出法を使えば可能です。
普通のHTMLではできませんので、最初から拡張子をaspにします。
具体的には、前の解答例のtest.htmとtest.aspをくっつけて一つのaspファイルにして、スクリプト(または実行)権のあるフォルダに置きます。
 
*********** /(aspフォルダ)/test.asp(★) ***********
<%
Session.TimeOut=20 '分
Session.Contents("name")=Request.Form("name")
if Request.Form("sex")="male" then Session.Contents("sei")="男"
if Request.Form("sex")="female" then Session.Contents("sei")="女"
if Request.Form("sex")="human" then Session.Contents("sei")="無指定"
if Request.Form("sub1")="登録" then response.redirect "/(aspフォルダ)/torok.asp"
if Request.Form("sub2")="検索" then response.redirect "/(aspフォルダ)/kensak.asp"
if Request.Form("sub3")="削除" then response.redirect "/(aspフォルダ)/sakujo.asp"
%>
<HTML>
<HEAD>
<TITLE>らじお</TITLE>
</HEAD>
<BODY bgcolor="beige">
<! ★次行で「自分自身を」呼び出します。>
<form method="POST" action="/(aspフォルダ)/test.asp">
<table>
<tr><td><b>お名前</b></td><td colspan=3><input type="text" size="42" name="name"></td>
</tr><tr>
<td>性別</td>
<td><INPUT TYPE="radio" NAME="sex" VALUE="male">男</td>
<td><INPUT TYPE="radio" NAME="sex" VALUE="female">女</td>
<td><INPUT TYPE="radio" NAME="sex" VALUE="human" checked>無指定</td>
</tr><tr><td>選択</td>
<td colspan="3" align="center"><INPUT TYPE="submit" name="sub1" VALUE="登録">  
<INPUT TYPE="submit" name="sub2" VALUE="検索">  
<INPUT TYPE="submit" name="sub3" VALUE="削除"></td></tr>
</table>
</FORM>
</BODY>
</HTML>
*************************************************
 
1回目アクセス時はRequest.Formの中は空っぽなので、if文を素通りして<HTML>以降が表示されます。
2回目アクセス時はFormの中が指定されているので、それらをSession変数に格納後 torok.asp等へ抜け出します。
結局、<HTML>以降へは行きません。
 
response.redirect より前に<html>を書いてはいけません。
Session変数の中身は異なるフォルダ間は渡せません、指定時間経過後はサーバのメモリから消えます。
 
(蛇足の1)
上では3つのaspに飛びますが、理屈上は飛び先は9つでも100個でも可能です。
しかし、ラジオ釦と合わせて9条件で9つのaspに飛ばすのは、何か構想に無駄がある感じで、見直されることをお勧めします。
実際に9つのaspを使うなら、少なくとも3つづつは殆ど同じスクリプトで、ちょっとづつ違うだけでしょうから、includeファイルを使うのが便利でしょう。
 
(蛇足の2)
>>ちなみにtextの中身でも何でも、Session変数になら1GBくらいは楽に収まりました。(上限はマシン容量で決まるはずで、事実上、ありません。)
 
う、また3桁間違えた、私がやったのは数MBまでです。
1GBでも入る筈ですが、そんな重量級をSessionで引っ張り回すことは、まずなさそう。
なお、上限は「サーバの」マシン容量で決まるはず・・・です。

ラジオボタンとsubmitボタンの組み合わせで指定されたページにFormの内容を飛ばす方法   まどかさん [2001/11/27 12:53:24] [1093]
  【解答例】ラジオボタンとsubmitボタン   北岳さん [2001/11/27 13:31:33] [1095]
    Re:【解答例】ラジオボタンとsubmitボタン   まどかさん [2001/11/27 13:52:11] [1097]
      Re:【解答例】ラジオボタンとsubmitボタン(改良2案)   北岳さん [2001/11/27 14:49:04] [1098]
        Re:【解答例】ラジオボタンとsubmitボタン(改良2案)   まどかさん [2001/11/27 16:43:29] [1099]
          【解答例その3】再帰呼出法   北岳さん [2001/11/27 18:17:04] [1100]
            Re:【解答例その3】再帰呼出法   まどかさん [2001/11/27 19:52:25] [1101]
              発言者により削除されました!! 北岳さん [2001/11/27 20:16:44] [1102]
              【解答例その4】インクルード・ファイル   北岳さん [2001/11/27 20:18:59] [1103]
                ありがとうございました   まどかさん [2001/11/27 23:48:48] [1106]
                  【補講】HTML→asp および asp→asp 間の変数の受け渡し   北岳さん [2001/11/28 13:51:58] [1115]
                    ありがとうございます2 TO 北岳さん   まどかさん [2001/11/28 16:18:23] [1121]
                    Re:ちなみにソレは   通りすがりのASPerさん [2001/11/28 18:23:16] [1122]


TreeBBS For ASP V.0.1.3
Program By YasNet