• ベストアンサー

Locationでターゲット指定はできますか?

print("Location: ../admin.cgi?action=head&page=cnn\n\n"); のように他のcgiへページを移行しているのですが、フレームの中に cgiファイルを出力しているのでtargetの指定が必要になります。 Locationを使ってtarget指定は出来ないのでしょうか? もし、やったことのある人がいればご指導ください。

  • DKG
  • お礼率50% (4/8)
  • Perl
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

Location ヘッダでは指定できないので、その Location ヘッダを書き出す CGI に 起動をかける form で target を指定しましょう。 <form action="xxx.cgi" target="admin.cgi の内容を表示したいターゲット"> xxx.cgi が > print("Location: ../admin.cgi?action=head&page=cnn\n\n"); を吐き出すつもりで書いてます。

DKG
質問者

補足

ありがとうございます。 やっぱりLocationをつかってはtarget指定できないんですね。 現状では1つのアクションを起こしたときにフレーム内の2つのページを更新したいので(しかも異なったcgiファイルを用いて)、むりみたいですね。 1つのsubmitで2つのformを送信するのも無理ですもんね。 もうcgiの構成を変えるしかないみたいです。

その他の回答 (1)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

> 1つのsubmitで2つのformを送信するのも無理ですもんね JavaScript を使って良いんだったらできますよ。 <script type="text/javascript> function submit_twice() {  document.form1.submit();  document.form2.submit(); } </script> <form name="form1" action="1.cgi" target="target1">  …  <input type="button" value="送信" onClick="submit_twice()">  <!-- このボタンで、同時に二つ submit -->  <!-- type="submit" なボタンは作らない --> </form> <form name="form2" action="2.cgi" target="target2">  …  <!-- こっちの form にはボタンを作らない --> </form> って感じ。 同じパラメータを二つに送るのであれば、form2 の方は type="hidden" にして submit() する前に、値を複写してあげれば良いですね。

関連するQ&A

  • Locationについて

    こんにちは。 今PerlでLocationを使って2つに分かれているフレームの(frame1とframe2)frame1にリンクをさせようとしています。 下のソースの中にTarget="frame1"を追加したいのですが追加は可能でしょうか? プログラムはこんな↓感じです。 print "Location: http://www.XXX/cgi-local/XXX.cgi?free=$XX\n\n"; ご教授ください。よろしくお願いします。

    • ベストアンサー
    • Perl
  • Locationを使いたいのですが

    はじめて質問します。よろしくお願いします。 フォームからデータを受け取って、なんらかの処理をしてから、 locationで別のページへジャンプしたいのです。 下のソースで、ローカル(win95)では正常に動いたのですが、 サーバーに移すと送信後のtest.cgiがエラーになってしまいます。 text.txtへの書込みはちゃんと行われています。 原因がわからなくて困っています。 locationの使い方が間違っているのでしょうか? ↓↓ test.cgiソース ↓↓ ------------------------------------------------------------ #!/usr/bin/perl require 'jcode.pl'; &decode; if ($FORM{'cmd'} eq "regist") { &write; # ファイル書込み print "Location: index.html\n\n"; } else { print <<END; Content-type: text/html <HTML><HEAD><TITLE>タイトル</TITLE></HEAD> <FORM ACTION="test.cgi" METHOD="POST"> <INPUT TYPE=TEXT NAME="message" VALUE=""> <INPUT TYPE=SUBMIT NAME="submit" VALUE="送信"> <INPUT TYPE=HIDDEN NAME="cmd" VALUE="regist"> </FORM> </BODY></HTML> END } exit; # ファイル書込み sub write { open OUT, ">test.txt"; print OUT "$FORM{'message'}\n"; close OUT; }

    • ベストアンサー
    • Perl
  • location=URLと、targetを使ってのフレームの解除について

    いつもお世話になっています。 target(フレーム解除)についてのことなんですがよく分かりません。 今の状況は、JavaScriptのlocationを使ってURLにリンクを貼っているのですが、それらのページはフレームでできています。 指定したURLにジャンプするときにフレームを解除したいのですがどうしたらいいんでしょうか? HTMLを使ってのフレーム解除ではなく、JavaScriptを使ってのフレームの解除を教えていただきたいです。 もし、不明な点がございましたら補足させていただきますのでよろしくお願いいたします。

  • perlでLocation

    Locationでは#xxxというのは使えないのでしょうか? #!/usr/local/bin/perl print "Location:xxx.cgi#xxx/?userID=$name\n\n"; exit; という風に書いています。 xxx.cgiはローカルにあるcgiでそのcgiの中身は表示できます。 しかしxxx.cgiの中の <xxxx.cgiの中身> print <<"EOM"; <html> . . . <A NAME="xxx>image</A> . . . </HTML> EOM exit; xxxのところでなく一番最初が表示されてしまいます。 どうすればいいのでしょうか?

    • ベストアンサー
    • Perl
  • Locationの部分をいじる

    携帯サイトを作っています。 パスワード認証(1.cgi)→端末振り分け(2.cgi)という流れにしたいのですが、vodaとPCは問題なく各々の目的のページに飛べるのですが、i-modeがエラーがでてしまうようです。 振り分け先に指定しているURLなんかはちゃんと合っています。 どうも、i-modeでLocationが機能しないのが原因ではないかと思うのですが、cgiのいじり方が分かりません。 サポートBBSによると1.cgiの以下の部分を変えるそうなのですが if ($pass eq $password) { print "Location: $cgi\n\n"; exit; } の部分のLocationが機能しないのだと思います。 秘密cgiで表示する最初のページを、この部分で読み込み表示する方法や、この部分にcgiへのリンクを張る方法をとられてはいかがでしょう? ということで、具体的にどうしたらよいのか分かりません。(サポートBBSが実質停止状態なので・・・) わかる方いらしたら、ご教授いただければと思います。

    • 締切済み
    • CGI
  • フレームのターゲット指定について

    フレームを使ったHPを製作しているんですが フレームのターゲット指定がなぜかうまくいきません。2分割したフレームなんですけどもフレームタグは <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>タイトル</title> </head> <frameset cols="100,*" framespacing="0" frameborder="NO" border="0"> <frame src="t_menu.htm" name="menu" scrolling="NO" noresize id="menu"> <frame src="t_main.htm" name="main" id="main"> </frameset> <noframes> <body> <P> このページをご覧いただくにはフレーム対応のブラウザが必要です。 </p> </body> </noframes> <script language="JavaScript"> <!-- window.open = SymRealWinOpen; //--> </script> </html> です。 t_menu.htmで指定したページを全てt_main.htm開きたいと思い、<a href="about.htm" target="main">を入れてもなぜか新しい窓が開いてしまいます。<a href="about.htm" target="menu">とやるとちゃんとmenuのところで開くようになります。何度やってもmainのほうに開いてくれません。何がいけないのでしょうか? 製作環境はDreamweaver MX2004、IE6.0です。 宜しくお願いします。

  • PerlのLocation:が文字として出力されてしまいます

    Perl/CGI内でボタンを配置し、そのボタンを押すとサブルーチンにあるprint "Location: $戻り先\n\n";でジャンプするようにしたいのですが、 「Content-type: text/html」より後にLocationを使うとジャンプせずに画面に文字として「Location: $戻り先」と表示されてしまいます。 このような場合どうすればよいのでしょうか?

    • ベストアンサー
    • CGI
  • エラーページでLocationしたい

    .htaccessにて ErrorDocument 403 /error.cgi とかしておいて error.cgiにて #!/usr/bin/perl print "Location:http://domain/\n\n"; みたいなことしたいんですが、IEではページの表示が認められてませんとなってしまいました。 一応内容を表示して Refresh:0;URL=..... としたら飛んでくれますが、LocationはエラーCGIでは使えないんでしょうか。 ----- Apache/1.3.26 Server perl, version 5.005_03 built for sun4-solaris Windows 2000 Pro SP1 Internet Explorer 5.5 SP2

    • 締切済み
    • CGI
  • CGIでのtarget指定について

    CGI初心者です。 下記図のようなイメージでhtmとcgiを組み合わせて表示させたいと考えています。 index.htm | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|←bunner.htm |  ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| |      |                    | |      |                    | |      |                    | |      |                    | |      |                    | |      |                    | |      |                    | |      |                    | | ___|_____________|  ↑ menu.cgi       ↑mein.htm index.htmにFRAMEタグを使用して表示させています。 menu.cgiに固定リンクを表示し、リンクをクリックした時にtarget指定でmein.htmに表示させたいです。 IE6では上手くいったのですが、IE7以降で試した場合、新規ウインドウでリンクが開かれてしまいます。(target=_blankと同じ動きです) ちなみにFireFoxでは新規タブに表示されます。 html形式の時点では問題なくできるようなので、恐らくcgiが絡んでいるのが原因だと考えています。 そもそもこのような作り方が問題なのでしょうか? menu.cgiに当たる部分は、固定リンクの他にテキストファイルを読み出して表示させるような可変リンクを表示したい部分もあるのですが、回避方法が見付からなく困っています。 どうか、お力添え宜しくお願いします。

    • ベストアンサー
    • CGI
  • HTMLフォームボタンによるターゲットフレームを指定したリンク

    上下にフレーム分割してあり、上をname="header",下をname="contents"としてあります。 head側のHTMLに記述したフォームボタンを押すと、親ウインドウ(target="_parent")に リンク指定先が展開されるようにしたいのですが下記の記述ではうまくいきません。 意図した親ウィンドウでなく、head側のフレーム内に展開されてしまいます。 <input type="button" name="01a" value="前へ" onclick="parent.head.location.href='../hoge1/1.htm'"> <input type="button" name="03a" value="目次" onclick="parent.head.location.href='../index.html'"> <input type="button" name="03a" value="次へ" onclick="parent.head.location.href='../hoge3/3.htm'"> 参考にしたのは以下ですが、何が誤っておりますでしょうか。よろしくお願い致します。 http://www.west-mira.jp/javascript/link/button2.html