【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言

index.html内に3つに分かれたフレームを作成し、
「frame1.html」「frame2.php」「frame3.php」を表示させています。

「frame1.html」にはformがあり、そこに入力したデータを
「frame2.php」と「frame3.php」に渡して処理を行わせたいのですが、
うまくいきません。

色々調べてjavascriptで渡そうと思ったのですが、
javascriptの変数に格納されたデータを、
phpの変数に格納する方法が分からずに挫折しました;;

やはりこういう処理はjavascriptでしかできないのでしょうか?
javascriptは勉強不足であまりわからないので、
出来ればphpだけで処理したいのです。

どなたかいい方法を教えて下さい。
どうぞよろしくお願いします。

A 回答 (3件)

formで2ヶ所に送るというのは、なぜ必要なのですか?


一つ目で受け取ったさいに、2つ目プログラムの方の
処理もやってしまえば、ワザワザむだなトラフィックを流す
こともないでしょう。再考なさった方がよろしいかと。

なお、とりあえずjavascriptでやるなら
actionとtargetを指定してsubmit
その後、actionとtargetを変更してsubmit
とすると行けるかもしれません。
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。

>formで2ヶ所に送るというのは、なぜ必要なのですか?
「frame1.html」で入力したデータをもとに、
「frame2.php」には『AサイトのAページ(「frame1.html」で入力したデータを送っています)』を表示させ、
「frame3.php」には『BサイトのBページ(「frame1.html」で入力したデータを送っています)』を表示させたいのです。

「AサイトのAページ」と「BサイトのBページ」は、
URLエンコードは使われていないので、
関数 file_get_contents で読み取る事が出来ないのです。
なので、frame を使った方法を考えました。

>なお、とりあえずjavascriptでやるなら
javascript は極力使いたくないのですが、他に方法はないでしょうか?;;

お礼日時:2007/02/18 22:02

#1です。


javascript で、フレームで分割されているフォームにデータを
入力するのは簡単にできます。
実際、私が昔使ったことがあります。
サンプルは、ありませんが、具体的には、フレームに名前とフォームの名前を指定して、その中のオブジェクトに対してデータを入力するというものです。
action は、一つのフォームには一つだけです。

javascript のサンプルを調べれば分かるはずです。
フレーム別にフォームが分かれているならば、それぞれをサブミットすることもデータの操作と同様にできます。

下記のサイトで参考になるものがあります。
http://www.openspc2.org/reibun/javascript/
    • good
    • 0
この回答へのお礼

度々のご回答、ありがとうございます。

>action は、一つのフォームには一つだけです。
やはり action は二つにする事は出来ないですよね;

実は、教えて頂いたサイトは、
ここに投稿する前に参考にしていました。
それをもとに、
> 具体的には、フレームに名前とフォームの名前を指定して、
> その中のオブジェクトに対してデータを入力するというものです。
上記と全く同じプログラムを作ってみたのですが、
やはり、javascriptの変数に格納されたデータを、phpの変数に渡す方法がわからず、
断念してしまったのです;;

お礼日時:2007/02/18 21:51

javascript でも、フォームのデータを渡したいなら、POSTかGETするしかないと思いますが。


PHPは、サーバでしか動かない以上、GETかPOSTが順当なところかと。
javascript でフォームのデータを渡すのも、SUBMITも出来ますから。

AJAXという手もありますが、レベルは高くなります。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

データはPOSTで渡そうとしています。
通常であれば送る側は、

<form action="データを渡すURL" method="post">
 <input name="スーパーグローバル変数名" type="text" size="50" />
 <input type="submit" value="送信"/>
</form>

とし、受け取り側は、

$_POST[スーパーグローバル変数名]

でいけますが、
今回は同じページのフレーム内に、しかも2箇所に送りたいのです。

フォームのactionで2箇所の送り先を指定出来ないか?とも考えましたが、
まず、フレームを超えてデータを渡す事も分からないですし、
actionを2箇所指定する方法があるのかどうかも分からない始末です…;;

どうすればフレームを超えてデータを渡せるのでしょう?
サンプルスクリプトなどあれば、とてもありがたいです。

お礼日時:2007/02/17 03:50

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


おすすめ情報