• ベストアンサー

複数のCGIにデータを渡したい

現在、2分割のフレームでA.cgi(frame1)とB.cgi(frame2)を表示させています。 <form method=post action="A.cgi" target="frame1"> <input type=submit value="name"> </FORM> でA.cgiにnameが送信された結果がframe1に表示されますが、この1つのボタンクリックで同時にnameをB.cgiにも送信し、結果をframe2に表示させるにはどうしたらいいでしょうか?

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

  • ベストアンサー
回答No.2

$name = "$FORM{'name'}"; は便宜上、そう書いただけです。 C.cgi?name=2005 は <form method=get action="c.cgi"> <input type=submit value="name"> </form> と同じですので、それに合わせて受け取ったデータを処理してください。 最近perlいじってないで、詳しいやり方は自分で調べてください。

その他の回答 (1)

回答No.1

具体的なフレーム構成(FORMはどのフレームにあるのか?など)不明ですが、こんな方法はどうでしょう? <form method=post action="C.cgi" target="_top"> <input type=submit value="name"> </FORM> C.cgi $name = "$FORM{'name'}"; #print "<FRAME SRC=\"A.cgi?name=$name\" NAME=\"frame1\">" #print "<FRAME SRC=\"B.cgi?name=$name\" NAME=\"frame2\">"

freednia
質問者

お礼

なるほど。目からウロコです。 教えて頂いたようにやってみたところ、 両方のフレーム内のCGIが実行するところまではうまくいきました。 ですが、データの受け渡しがうまくいきません。 nameに2005というデータを格納してC.cgiに送信するとアドレスバーの表記は、 http://www.xxx.com/C.cgi?name=2005 となります。 これでC.cgiにはデータが受けわたっていると思います。 ところがA.cgiとB.cgiにそれぞれ、 $name="$FORM{'name'}"; と記述しても$nameにはデータが格納されないみたいです。 よろしければ教えて頂けませんでしょうか。

関連するQ&A