• ベストアンサー

ウィンドウを2つ出したい。

教えてください。 cgiはprint文でタグを書き、表示するものですが cgiの途中でもう1個ウインドウを開きたい場合はどうすればいいのですか? 詳しい方教えてください。 文の途中でFORM TAEGETしてもダメでした。。。

  • CGI
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • quenista
  • ベストアンサー率28% (122/425)
回答No.1

JavaScriptのwindow.openを使って、実現する方法はどうです? 私は、これで実現させてます。

display
質問者

補足

早速のお返事ありがとうございます。 詳しい方みたいなのでもう少し具体的に教えてください。 cgiやhtml、Javascriptなどは調べないとわからないもので・・・。 できれば、参考になるホームページ quenistaさんが調べるときに使うページなどを教えていただけると うれしいのですが・・・。 cgiの途中でJavaScriptを呼ぶときはどうすればいいのですか? ボタンなどの時には使うのでわかるのですが 処理の途中でJavaScriptを呼んだことがないので使い方がわかりません。 普通に関数を呼べばいいのですか? あとwindow.openも知らないので理解できる参考ページを教えてください。

その他の回答 (1)

  • quenista
  • ベストアンサー率28% (122/425)
回答No.2

>詳しい方みたいなのでもう少し具体的に教えてください。 いや、詳しくは無いのですが...。 適当に作ったら、適当に動くので...。(笑) print "<SCRIPT LANGUAGE=JavaScript>\n"; print " <!--\n"; print "nwin=window.open(\"xxxx.htm\");\n"; print " //-->\n"; print "</SCRIPT>\n"; って書けば、xxxx.htmが開くと思います。 >調べるときに使うページなどを教えていただけると・・・ 私は、参照URLのページをいつも参考にさせて頂いています。 今のところ、本なんか買わなくても、このページ一つで事足りてますよ。

参考URL:
http://tohoho.wakusei.ne.jp/
display
質問者

お礼

ありがとうございます。 参考になりました。 javascriptを使うのかな?って思ったのですが 探すのがなかなか大変で。。。質問しました。 やはりとほほを参考にしているのですね。 わたしもとほほを見ていたのですが探せませんでした。 window.openを使ってみようと思ったのですが window.openは決まったhtmlを表示するのに最適なようですね。 横にdocument.openってのがあったので そちらを使ってみようかなと思います。 とても助かりました。ありがとうございました。

関連するQ&A

  • Ajaxでウインドウ出力について

    CGI上で、HTMLのコードを書いて、WEBページを出力(表示)することが出来ますが、それと同じようなことが、Ajax(Jqueryを使っています)で出来ませんでしょうか。 CGIを使ってやろうとしていたのですが、同じページでFormタグを多用しており、CGI以外の方法でページ出力をしようと思います。 HTMLからOnClickで値をAjaxに渡して、データベースとやりとりをし、Ajaxに値を戻してそれを元にページを作成して出力をさせたいのです。(別ウインドウを立ち上げで) このようなことは出来ますでしょうか。 また、出来るようでしたらどうやってプログラムを作成すればいいでしょうか。 教えてください。よろしくお願いいたします。

    • ベストアンサー
    • AJAX
  • form の target(

    form タグに オプションとして存在する target に関してです。 form method="POST" action="***.cgi" target="new" と記述すればsubmit実行時に結果を別ウィンドウに転送します ここまではいいのでが・・・・ submitボタンが複数ある場合(ボタンによって処理が違う) ボタンによって、このボタンは新しいウィンドウを開くが、 このボタンは開かない(同一ウィンドウ内に結果表示する) というように設定することはできますか? CGIとJavaSCRIPTの利用は可能です。 やはり別の form を立てるしかないのでしょうか? (cgiに渡す値が大量なため一つのformで実現したいとおもっています)

    • ベストアンサー
    • HTML
  • 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の処理によって表示するウィンドウを変えたい

    商品の管理画面を作成しています。 一覧画面で、まずラジオボックスで削除と修正のモードを選択して、次に商品の写真をクリックすると別ウィンドウが開いて削除画面なり修正画面を表示するというCGIを作成しています。 formタグの中は以下の感じにしました。  <form name="choice" method="get" target="profile" action="management.cgi">   <p>    <input type="radio" name="mode" value="0" /><br />    <input type="radio" name="mode" value="1" />   </p>   <p>    <button type="submit" name="id" value="001" />     001    </button><br />    <button type="submit" name="id" value="002" />     002    </button>   </p>  </form> これでCGIに対して、モードの選択と商品IDを送信し、処理結果を別ウィンドウに表示することが出来ます。 しかし、このやり方だと、処理を差し戻す場合も別ウィンドウに表示されてしまいます。 つまり削除と修正の選択を忘れたまま商品を選択してしまった場合、「削除、または修正を選択してください。」というコメントを追加して元の画面へ戻るようにしてあるのですが、この画面だけは別ウィンドウでなく元のウィンドウに表示させたいのです。 こういう表示ウィンドウの使い分けは出来るのでしょうか? CGIの言語はPerlを使用しています。

    • ベストアンサー
    • HTML
  • (Perl)ReadParseによるハッシュへの格納について

    PerlのReadPerseについて質問させてください。 以下少々長いですが、過程を書きます。 <form>タグにより、入力フォームのページをHTMLで作成したとします(form.html)。 その際、<form method="post" action="form.cgi"> と入力しておいて、別途form.cgiを作成するとします。 form.htmlには、<form>タグ内のname属性で、それぞれ'weight' 'height' 'age'という三種類のデータを入力してもらって、取得するようにしています。 そして<input type="submit" value="登録">による、 登録ボタンを押すことで、 form.cgiに処理をさせるようにしています。 form.cgiの中身ですが、まず、最初の三行を書きます。 #!/usr/local/bin/perl require 'cgi-lib.pl'; &ReadParse(*form); となるのですが、わからないのが、 三行目の &ReadParse(*form); です。 サブルーチンReadParseを引数*formで、 cgi-lib.plから呼び出しているということはわかるのですが、いきなり*formという形で、ハッシュを登場させているあたりがわかりません。(この際、ハッシュ名の前の%を*に変えなければならないことは、一応知っております。理由はわかりませんが。) そこで質問なのですが、 いきなり、ハッシュであるformを登場させていいものなのでしょうか?? 以下、form.cgiの内容です。 #!/usr/local/bin/perl require 'cgi-lib.pl'; &ReadParse(*form); $name=$form{'weight'}; $sex=$form{'height'}; $megane=$form{'age'}; print "Content-type: text/html\n\n"; print "<html>\n"; print "<body>\n"; print "体重:${weight}<br>\n"; print "身長:${height}<br>\n"; print "年齢:${age}<br>\n"; print "</body>"; print "</html>"; _END_

    • ベストアンサー
    • CGI
  • 1つのフォームで2つのcgiにデータを送るには

    どうぞよろしくお願いします。 テキストエリアにデータ入力して送信ボタンを押すと、 入力した内容が2つのcgiに送られるというようにしたいのですが、こういったことは可能でしょうか? イメージとしては下記のような感じです。 <form action="CGI名1" action="CGI名2" method="POST"> <inpu type="text" name="text1" size="32"> <input type="submit" value="送信"> </form> 両方の送信結果を別々のウインドウで表示します。 もしformタグでは不可能な場合、何か代換法がありましたらよろしくお願いいたします。

    • 締切済み
    • CGI
  • A タグで新しいウインドウをオープンしたいです。

    A タグで新しいウインドウをオープンしたいです。 javascriptは全く素人なのですが,Aタグをクリックした際に別ウインドウ(サイズ指定あり,ツールバー,メニューバー表示なし)を表示することは出来ますか。<form>~</form>の中で使うのと,他のリンクとの統一を図るためにボタンは使用したくないです。JavascriptをOFFにしている人にも配慮したコード例を書いていただけないでしょうか。よろしくお願いします。

  • ウィンドウの「閉じる」ボタンは

    Windows2000 ホームページビルダーVer10 を使っています。 「閉じる」ボタンを作るとき、htmlタグで次の通り記述しました。 <FORM><INPUT type="BUTTON" value="閉じる"onclick="window.close()"></FORM> 実行しますと 「ウィンドウは表示中のWebページより閉じられようとしています。このウィンドウを閉じますか <はい> <いいえ> 」 のメッセージが現れ、<はい>をクリックするとウィンドウは閉じますが、このメッセージが現れないようにする方法は無いでしょうか? 要するに「閉じる」ボタンをクリックすれば、すぐにウィンドウを閉じたいのです。(メッセージが出るのが、うっとうしいから・・・)

  • 別ウィンドウへcgiの結果表示をする時に・・・

    FORMのACTIONでcgiを指定し、その結果をTARGET="_blank"で別ウィンドウへ表示する時に、別ウィンドウのメニューバーを消したいのですが、そういうことってできますでしょうか? <FORM METHOD="post" ACTION="../cgi-bin/sam.cgi" NAME="form" TARGET="_blank"> <SELECT NAME="year"> <OPTION SELECTED>2001</OPTION> <OPTION>2002</OPTION> <OPTION>2003</OPTION> </SELECT> </FORM> 元のソースはこんな感じです。このTARGET="_blank"のMENUBAR="0"にしたいのですが・・・ よろしくお願いします。

  • mysql perl  2回保存される。

    perlとmysqlを使っています。 htmlのformタグからえたテキストをCGIに送って データベースに保存しているのですが、送信ボタンを押すと2回データベースに 保存されてしまいます。 同じデータがふたつ保存されるのではなく、 一つ目はすべてNULLのデータが保存され 二つ目にmformの内容が保存されます。 CGIのほうのSQL文はひとつしか書いていません。for文も使っていません。 <-----以下form部分のソースーーーーー> print "<form method=\"POST\" action=\"./CGI/save_DB.cgi\" name=\"saveform_2\"target=\"subwindow\" onSubmit=\"openwin();\">"; print "<div>タイトル:<input type=\"text\" name=\"TITLE\" autocomplete=off value='"; print "$TITLE\'></div>"; print "<input type=\"submit\" value=\"保存\">"; print "</form>"; <-----以下save_DB.cgi SQL実行部分のソースーーーーー> my $TITLE = $cgi->param('TITLE'); my $dbh = DBI->connect("DBI:mysql:host=${db_host};database=${db_name}", $db_user, $db_pass); my $sth = $dbh->prepare("INSERT INTO テーブル名 ( `title`) VALUES ($TITLE); my $rv = $sth->execute(); データベースへの接続などの問題はありません。 ブラウザはクロームですが、IEで試しても同じ現象がでました。 考えられる原因、おもいあたる原因がありましたら、教えてください。 また、原因がわからなくても、回避できそうなやり方があれば教えてください。 よろしくお願いいたします。

専門家に質問してみよう