プロが教えるわが家の防犯対策術!

cgiで作成した画面でフレームを左右に分割したのですが、
内容が表示できません。
cgiで作成したフレーム分割した画面に
結果を表示させる方法を教えてください。
(cgiの記述の仕方が間違えているのか?
 htmlの<frameset>、<frame>タグの設定の仕方が悪いのか?
 そもそも全体の流れの考え方が間違えているのか?
 分からず、行き詰ってしまっています…。)
どうか宜しくお願いいたします。

■作成したファイルは下記のような仕様です。
TEST.html :ボタン操作で、AAA.ccを実行する。
AAA.cc   :作成した画面上のリンクをクリックすることでBBB.ccを実行する。
        画面は左右にフレーム分割し、
        左側フレームにAAA自身の実行結果として取得したファイルのリストを
        右側フレームにファイルリストでリンクした画面を表示させる。
BBB.cc  :AAAから指定されたリンクを加工して開く。

■ファイルの内容は下記のような感じです…。
>>>TEST.html
<form action="**パス**/AAA">
<input type="hidden" name="path" value="**AAAに渡すデータ**">
<input type="submit" value="リスト">
</form>

>>>AAA.cc
cout << "<frameset cols=\"30%,*\">" << endl;
cout << "<frame src=\"**パス**/\" name=\"listA\">" << endl;
 :(省略)
cout << "<a href=\"**パス**/BBB?path=" << BBBに渡すデータ << "\" target=\"ContensB\"
>" << endl;
 :(省略)
cout << "<frame src=\"**パス**/\" name=\"ContentsB\">" << endl;
cout << "<html>" << endl;
cout << "<head>" << endl;
cout << "<title>Contents</title>" << endl;
cout << "</head>" << endl;
cout << "<body>" << endl;
cout << "</body>" << endl;
cout << "</html>" << endl;
cout << "</frameset\">"

>>>BBB.cc
 :(省略)
cout << getContents() << "<br>" << endl;
 :(省略)

どうか宜しくお願いいたします。

A 回答 (2件)

> cgiで作成したフレーム分割した画面に


> 結果を表示させる方法を教えてください。

HTMLの解説書や解説サイトには書かれてなさそうな、これを実現するアルゴリズムだけ補足します。

フレームのないページ(TESTt.html)からフレームページ(AA)へ移動し、その中の1フレーム(BB)で結果を表示する場合、

TEST.htmlからAAへはデータを送られますが、AAとBBはデータを共有することはできません。
そこで、<frame src="BB?(この部分)">に記述することで、AAからBBへデータを渡せます。
BBは環境変数 QUERY_STRING からこのデータを受け取れます。
    • good
    • 0
この回答へのお礼

回答、どうもありがとうございました!
お礼が遅くなってすみません。
もう誰からも回答は来ないと思っていたもので…。
自分で解決しました。
内容はtalooさんのこの回答とほぼ(というか全く)同じだと思います。

少し、難しく考えすぎていたみたいでした。
cgiを使用しているということで混乱していました。(苦笑)
 cgi内の処理で時間がかかる部分があって、
それで「このやり方では上手く表示できないのだ…。」と
思い込んで、無駄(?)に試行錯誤をしていました。

普通に考えて、html内でframaeset,frame(AAとBB)を設定し、
AA.cc内で、BBへリンクしてtargetにBB.ccの実行ファイルを指定してやる方法で解決しました。

無駄に思えた試行錯誤も、問題が解決できた事と、talooさんの回答の考え方と殆ど同じだった事で『これでよかったのだ』と安心することができた事、また調べる事いろいろ勉強になったたので、結果的には良かったと思っています。
回答有難うございました。

お礼日時:2008/05/27 13:36

まずHTMLを勉強されてみてはいかがでしょうか?


http://okwave.jp/qa4039001.html
このページのANo.2からリンクをたどっていって、framesetとかtargetで調べると幸せになれると思います。

CGI(C++アプリ)を使わずに
HTMLファイルだけで作って動作を見てみた方がわかりやすいと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!