一つのCGIで、二つのフレームに同時に表示するには?

[上に] [前に] [次に]
若葉 2000/06/09(金) 10:44:17
画面を3つのフレームに分けていて、上はタイトル(HTMLファイル)下の左はメニュー(Perl)、下の右はメイン(Perl)という画面構成です。
メインで送信ボタン(またはテキストリンク)をクリックすると、メニューとメインを同時に変更したいのですが(Perlで)どなたかご存知の方がいたら、
教えて頂けないでしょうか?よろしくお願いします。

andi 2000/06/09(金) 12:32:33
? http://www.tohoho-web.com/lng/r200006/00060048.htm

謎の人 2000/06/09(金) 13:27:30
基本的には、一回のCGI出力は一つのターゲットのみ対してです。
ですので、同時にはむりですが...。

ドミノ式にCGIを起動して、あたかも同時みたいな感じにはできるかも...。

[ドミノ式とは]
(標準出力するHTMLにCGI起動のJavaScriptを仕込んどく)

Fuji.♪ [E-Mail] [HomePage] 2000/06/09(金) 13:45:30
パラメータを渡してやれば動作モードの切り替えは可能なので、パラメータが無い場合にはframeset定義のHTMLを、パラメータがある場合にはパラメータにあった内容のHTMLを出力するPerlスクリプトを記述してやればokかと思います。

とりあえず、 http://www.kent-web.com/chat/ のCOMCHATはその形式を取っていたかと思いますので参考にされてはどうでしょうか。

若葉 2000/06/09(金) 14:09:36
ごめんなさい、質問の仕方が悪かったです。
前回の質問では、メインの送信をクリックすると、メインの入力内容によってフレーム全部を書き直すCGIを起動することで解決しました。
今回はタイトルフレームはそのままで、メインの送信ボタン(またはテキストリンク)をクリックすると下の2つを変更するPerlプログラムを起動させたいのです。
謎の人さんの書いてくれた「ドミノ式にCGIを起動」なら私でも理解できそうですが、どうやったらHTMLが出力されると自動的にPerlを起動させることが出来るのでしょうか?
何度もすみません。

Fuji.♪ [E-Mail] [HomePage] 2000/06/09(金) 14:40:16
上下段のフレーム定義→下段の方では左右に分けたフレーム定義という形式にして下段のフレームを表示しなおす。
駄目? (^^;

若葉 2000/06/09(金) 16:06:52
ごめんなさい、もうちょっと具体的に言うとどんな感じですか、Fuji.♪ さん?

Fuji.♪ [E-Mail] [HomePage] 2000/06/09(金) 16:12:04
frame1.htmlでは上段フレーム(top)と下段フレーム(bottom)を定義し、bottomにはframe2.cgiを表示。
frame2.cgiでは左フレーム(left)と右フレーム(right)を表示。

topフレーム中にあるリンクを選んだら、<a href="frame2.cgi?mode=menuitem" target="bottom">として呼び出し。
frame2.cgiはパラメータmodeを参照し、パラメータが渡されていなかったら標準画面を、パラメータが渡されていたらそれに沿ったCGIスクリプトなりをleftとrightに対して表示させる。

こんな感じでどうですか?

若葉 2000/06/09(金) 16:30:43
丁寧な説明ありがとうございます。
う〜ん、折角なんですがやはりフレーム定義を変更するのは厳しいです。
ごめんなさい。

Fuji.♪ [E-Mail] [HomePage] 2000/06/09(金) 16:40:17
構造的には最初言われていた3分割のままなのですけどね・・・。 (^^;
それでは、謎の人さんが言われている手段しかないと思います。
左右両方のフレームを更新するJavaScriptを記述、でしょうね。

#私はJavaScriptが動かない環境でも同じように表示される、という手段は先ほど言ったものしか思いつきません。 (^^;

若葉 2000/06/11(日) 15:44:29
遅くなりましたが、結局Fuji.♪さんの教えてくれた通りにしてみました。
frame1.plでは上段フレーム(top)と下段フレーム(bottom)を定義し↓
  <frame src="top.pl" name="Header" noresize scrolling="NO" target="_top">
  <frame src="frame2.pl" target="_top" name="Bottom" noresize>
bottomにはframe2.plを表示。frame2.plでは左フレーム(left)と右フレーム(right)を表示。↓
  <frame src="left.pl" name="MenuBar" noresize>
  <frame src="right.pl" name="Main" noresize>
leftフレーム中にあるリンクを選んだら、
<a href=\"Bottom.pl" target="_top">
として呼び出しします。
これだと上段フレーム(top)まで解除してしまいます。下段フレーム(bottom)だけ解除したいのですが、記述が間違えていますか?
(ほんとに初歩的な質問ですみません)

若葉 2000/06/11(日) 15:47:47
>leftフレーム中にあるリンクを選んだら、
><a href=\"Bottom.pl" target="_top">
>として呼び出しします。
rightフレーム中にあるリンクを選んだら、
<a href="frame2.pl" target="_top">
として呼び出しします。
の間違いです。

若葉 2000/06/11(日) 15:55:55
[[解決]]
ほんとにとほほでした。
_topを_parentでできました。
ありがとうございました。感謝。

[上に] [前に] [次に]