• 締切済み

CGIの処理結果をHTML内に表示したい!

はじめまして。 CGI初心者です。 現在、とあるフリーのアンケートのCGI(perl)を改良していて、それは、アンケートに答えて、送信ボタンを押すと、CGIファイルの処理結果として、これまでのアンケートの集計結果がグラフで表示されるというものです。 その集計結果のみを、別ページ(左側や上部にメニューがあるもの)のHTML内に収めたいのです。 ※新しいウィンドウが開かなくてもOKです。 ※その別ページというのが私のオリジナルのページになります。 イメージとしては、 1)anket.html(アンケートに答える)  ↓ 2)anket.cgi(返答内容とこれまでの集計を処理)  ↓ 3)anket.html(集計結果が埋め込まれたHTMLファイルが表示される) 初心者なので、用語の使い方等間違っていましたらすいません。。 よろしくお願いします!

みんなの回答

  • chupark
  • ベストアンサー率41% (90/218)
回答No.2

検討はずれな回答になるかと思いますが… #1の方がおっしゃっているとおり、CGIでやろうとするとなかなか困難だと思いますが、PHPという言語を使えば、HTML内にプログラムを埋め込むことができますので色々な方法が考えられると思います。 今回のご質問だと既存のCGI(Perl)を改良されているとのことなのでちょっと的外れかもしれませんね。 どのようなCGIかはちょっとわかりませんが、簡単なものならばPHPを一から勉強して、オリジナルを制作してもそう遠くないような気がします。

nichibe
質問者

お礼

やはりperlでは無理そうなんですね。。 PHPなら出来る可能性があるということですか。 今まで全く触れてなかったので、うまくイメージが湧かないのですが、 もう少し別のCGIを探してみてからPHPに踏み出そうかと思います。 アドバイスありがとうございます!

  • EEshiba
  • ベストアンサー率29% (45/152)
回答No.1

anket.html->anket.cgi->anket.html という流れとの事ですが、anket.htmlというのは「左側や上部にメニューがあるもの」とあるので、フレームを使ったページで、質問とその結果が同一ウィンドウ内に表示されるページと考えれば良いのでしょうか? そこであるフレーム内の質問に答えると、集計結果が別フレームに即座に反映して表示されるような仕組みを作りたいという事で良いのでしょうか? 今、仮にそうだとすると、ウィンドウ内の全てをcgiで表示するようにしないと無理です。 多分、そのフリーのアンケートのCGIは質問ページ用のhtmlがあって、そのaction先にcgiを指定して、質問の回答をそのcgiに送り込んで処理して、結果のページを返すという動作と思われますが、残念ながら、そのやり方ではご希望の動作は実現できません。 同一のページに質問と集計結果を同時に表示する場合は全ての内容をcgiの出力結果として表示しなければなりません。 つまり最初にanket.cgiから始まって anket.cgi->anket.cgi->anket.cgi->anket.cgi...以下同じ という流れになるのです。 正直なところ、「初心者」と書かれているので、結構困難だと思われますが、cgiファイルしか無いアンケートcgiやメール送信ページ用のcgiなどは、そういう方法を使っている物もありますので探せばサンプルとなるようなcgiもあると思います。

nichibe
質問者

お礼

アドバイスありがとうございます。 anket.htmlは左側や上部にメニューがあるのですが、それはフレームではなくただのテーブルで、 出来ればそのメニュー部分を残したまま、テーブルの真ん中などに、CGIの処理結果を表示したいのです。 だから、 anket.html->anket.cgi->anket2.html と、CGIの処理結果を表示するHTMLはanket.htmlとは別に(例えばanket2.htmlとして)作成しても構わないと思ってます。 >多分、そのフリーのアンケートのCGIは質問ページ用のhtmlがあって、そのaction先にcgiを指定して、 >質問の回答をそのcgiに送り込んで処理して、結果のページを返すという動作と思われますが、 >残念ながら、そのやり方ではご希望の動作は実現できません。 また説明不足で申し訳ありません。 そのフリーのアンケートは元々は1つのCGIファイルの中に質問ページから処理結果の表示まですべて収まっていて、 そのCGIを実行するだけでアンケートへの回答から集計⇒グラフ化まで行えるようになってます。 それで、現在は私が作成したオリジナルのHTML内のformのaction先にこのCGIを指定してあるのです。 こういった状況でもやはり無理でしょうか? 頂いた返信を読みますと、実現は結構厳しそうなのですが、何かお勧めのCGIなどありましたら教えて頂けますか? よろしくお願いします。

関連するQ&A

  • フォームでCGIにとばした処理結果を。。

    はじめまして。 JavaScriptもHTMLもCGIもほとんど初心者です。 現在フリーのCGI(Perl:アンケートフォーム)を使用しようとしてるのですが、HTMLファイルのformにあるactionで CGIにとばして、その結果を(JavaScriptで開いた?)新しいウィンドウに表示したいのですが、可能でしょうか? さらに、出来ればその結果が表示される新しいウィンドウにはメニューバーやスクロールバーをなくして、「閉じる」というボタンをつけて閉じるようにしたいのですが、それも可能でしょうか? 何卒よろしくお願いします。 =====

  • CGIの出力結果をHTMLに表示したい(SSI使用)

    http://wa-ka.net/mash/sozai/tenshin/index.html 上記のサイトのアンケートCGIを利用しています。 アンケートの集計結果を、HTML上に表示したいのですが、どのようにしたら良いのかアドバイスをお願い致します。 HTMLのページの中に <!--#exec cgi="./tenshin.cgi?mode=reportfile"--> と記載しても上手く表示されません。 ですが、 <!--#exec cgi="./tenshin.cgi"--> と記載すると、一応 tenshin.cgiにアクセスした時に表示される内容が表示されます。 HTMLファイルと、cgiは同じ階層においてあります。 <!--#exec cgi="./tenshin.cgi"--> と <!--#exec cgi="./tenshin.cgi?mode=reportfile"--> の違いは、「?mode=reportfile」があるか無いかなのですが、このようにcgiの後に何か付いてしまうと、SSIでCGIを呼び出しHTMLに表示する事はできないのでしょうか? アドバイスをお願い致します。

    • ベストアンサー
    • Perl
  • CGIの出力に別のCGIの出力結果も同時に表示させたい

    ショッピングカートのCGIに、アンケートCGIの集計結果も一緒に表示させたいと思います。 ショッピングカートで、まず商品を検索。 検索結果の商品ごとに、ユーザーに付けてもらったアンケート結果も一緒に表示させて、商品の評価も見て分かるようにしたいです。 SSIの利用を考えていたのですが、CGIの中でSSIを使用してもコメント扱いになり、SSIを動作させる事ができないと言う事が分かり、今回質問しました。 アンケートCGIは下記のスクリプトになります。 http://wa-ka.net/mash/sozai/tenshin/index.html 上記のサイトのアンケートCGIを利用しています。 アンケートの集計結果を、ショッピングカートCGIの検索結果に表示したいのですが、どのようにしたら良いのかアドバイスをお願い致します。 「tenshin.cgi?mode=reportfile」とすると、アンケート結果が表示されるようになっています。 ショッピングカートの検索結果の出力部分は、 $print .=<<HTML; HTML の間に記述されているHTMLの情報が、出力結果として表示されるようになっています。 この中に「$item」「$price」「$comment」等の変数(?)が入っており、商品毎の情報が表示されます。 上手く説明できているか分かりませんが、CGIの出力に別のCGIの出力結果も一緒に表示させる方法はありますでしょうか。 アドバイスをお願い致します。

    • ベストアンサー
    • Perl
  • HTML上(javascript)からCGIを実行する方法

    javascriptから外部実行ファイル(javascriptファイルではなくperlなどのCGI) を実行する方法を探しています。 下記のようにindex.htmとtest.cgiファイルを用意して、index.htm内の javascriptから外部cgiを実行させ、cgiの結果(test.cgiでは単に 『test』と表示するのみ)を表示したいと考えています。 利用増ですが、cgiやssiが使用できないサーバにindex.htmを置いて、 cgiが使用できるサーバ上のcgi結果を取得したいものです。 通常のcgiのように、1ページでcgi結果を表示するものではなく、 HTMLファイルの一部にcgi処理結果を表示させたいものです。 そもそも、SSIを使用しなければ下記のようなHTML内にcgiなどの 実行結果を表示する事は出来ないのでしょうか。 よろしくお願い致します。 ※下例のプログラムではcgi結果は表示されませんでした・・・。 ---<index.htm>---------------------------------------- <HTML> <BODY> <SCRIPT language="Javascript" src="http://xxx.xxx.xxx.xxx/test.cgi"></SCRIPT> </BODY> </HTML> ---<test.cgi>---------------------------------------- #!/usr/bin/perl print "test"

  • アンケートのCGI探してます。

    アンケートのCGIを探してますがなかなか見つかりません・・・ 1.回答者は選択から選ぶだけ。 2.集計結果は別ページになってCGI設置者しか見れない。 要は集計結果が回答者に見えなくできれば良いだけなんですが・・・どなたか最適なcgiがあれば教えてください><

  • CGIの結果をHTMLの一部に貼り付けたい

    こんにちわ。 日にちをカウントダウンするCGIを使い、 「~~~まであとO日」とTOPページに表示させたいのですが、 CGIファイルのその結果をHTMlに埋め込むことは可能なのでしょうか? CGIファイルは *-*-*- #!/usr/bin/perl require "timelocal.pl"; $world_cup = "2002-6-10 0:0:0"; ($w_year,$w_mon,$w_day,$w_hour,$w_min,$w_sec) = split(/[- \:]/,$world_cup); $w_year-=1900; $w_mon--; $now = time(); $w_cup = &timelocal($w_sec,$w_min,$w_hour,$w_day,$w_mon,$w_year); $diff = $w_cup - $now; print "Content-type: text/plain\n\n"; print int($diff/(60*60*24)),""; *-*-*- というものを使いました。  結果としてこのソースのCGIをブラウザで見ると数字が(カウントダウンされた日にち)が表示されますが、 その日にちの部分をHTMLで埋め込みたいのです。GIFなどを使わずにその結果のみをHTMLに埋め込む方法をご存じでしたら、教えてください。 無知な質問ですいません。できましたら 至急 よろしくおねがいします。

    • ベストアンサー
    • HTML
  • HTMLのファイルにCGI処理結果を表示する

    まずトップページはhtmlで作ります。 そのトップページにいつも変化する所があるのでcgiで処理を施したものをhtmlに貼り付けたいと思っています。 その場合に例えば画像を出力させる場合は <IMG src="cgi-local/top.cgi"> で指定し、 #!/usr/local/bin/perl print "Content-type: image/jpeg\n\n"; open FH,"<../image.jpg"; binmode FH; binmode STDOUT; print while(<FH>); close FH; をやれば動かせますが、これを画像ではなくhtmlを表示させるためには print "Content-type: image/jpeg\n\n"; を print "Content-type: text/html\n\n"; に変更する事により可能だと思いやってみたのですが、うまく出力できませんでした。 cgi処理をうまくhtmlに貼り付ける方法があるのでしょうか。どうか教えて頂けないでしょうか?お願します。(涙)

    • ベストアンサー
    • CGI
  • HTMLにCGIカウンターを

    初歩的なCGI(Perl)のアクセスカウンターの作り方を学びました。 今まではHTMLでHPを作成していました。そこでトップページにアクセスカウンターを付けたいのですが、当然のことながら今のトップページは「index.html」ファイルです。このファイルにCGIによるアクセスカウンターをつける場合、「index.html」のファイルを一から「index.cgi」ファイルにPerlで書き換えなければならないのでしょうか。今の「index.html」の一部分を書き換えるだけでCGIのアクセスカウンターが設置できないものでしょうか。

    • ベストアンサー
    • CGI
  • CGIでのHTMLとプログラムコードの分離について

    CGIでのHTMLとプログラムコードの分離について CGIプログラミングのフレームワーク的なアイデアについてご教示願いたいです。 CGIを記述する場合、その多くは下記のようなスタイルになるのではないかと思います。 1.formタグのactionからcgiを呼び出す     ↓ 2.cgiの中で計算やsendmail等の処理を実行     ↓ 3.結果をブラウザ上に表示するためprint等を利用してhtmlタグを表示 この手法を用いると、手順2のところでHTML部分とプログラムコード部分が混合してしまい、見栄え(html部分)を変更しようと考えた時、HTML部分の記述があるcgiプログラムを編集し、該当する部分のタグを表示させているであろうprint文の表示内容を変更する必要があります。 見栄えのhtml部分とCGIのコードを完全に分離することは出来ないのでしょうか??? 上記手順の「1」に関してはhtmlファイルを編集する事だけで、cgiファイルを編集する必要はありません。 手順「3」もリダイレクトを利用すれば可能だと思います。 問題は、手順「2」の部分です。 この部分の見栄え部分を変えようとすると、どうしてもcgiプログラムを開いて編集する必要に迫られてしまいます。 下記の例のような処理(見栄え用のhtmlファイルを読み込む方法)は出来ないものでしょうか? <例:アンケートフォーム> 1.アンケートフォーム(html)のformタグにあるactionからcgiを呼び出す     ↓ 2.cgiでformタグ内のテキストエリアやラジオボタン等の情報を収集     ↓ 3.収集結果を表示させるための「hantei.html」を読み込む     ↓ 4.読み込んだ「hantei.html」の中に収集結果を埋め込んで表示     ↓ 5.問題なければアンケート結果をsendmail等でメール送信   問題あれば手順1のアンケートフォーム(html)へ戻る     ↓ 6.無事にメール送信出来れば、有難うございましたページ(html)へリダイレクト 上記手順の3と4が実現できれば、見栄えを変えたい時はhtmlファイルを編集すればよく、cgiプログラムを触る必要がなくなるのではないかと思います。 私が考えている事について、「自分はこうしている」とか「そうではなくてこうすれば良いよ」などなどありましたら、是非ご教示願いたいです。

    • ベストアンサー
    • Ruby
  • カウンターcgiをHTMLに表示したい

    perlの入門書を見て簡単なカウンターのcgiを作りました。gif画像を10枚使ってテキスト数字のかわりに表示させるものです。 サーバーにアップして動作確認もしました。ちゃんと動いています。 このカウンターをHP上のHTMLのページに表示させたいのですが方法が分かりません。 <img src="カウンターcgiのURL"> と書いたのですが、ダメでした。 画像ではないのでimgタグだとダメなのでしょうか。 どうすればHTMLに表示できるのか教えて下さい。 関係があるか分かりませんが、SSIは使えます。

    • ベストアンサー
    • Perl

専門家に質問してみよう