- 締切済み
frame1のフォームに入力したデータを、frame2とframe3に渡したい
index.html内に3つに分かれたフレームを作成し、 「frame1.html」「frame2.php」「frame3.php」を表示させています。 「frame1.html」にはformがあり、そこに入力したデータを 「frame2.php」と「frame3.php」に渡して処理を行わせたいのですが、 うまくいきません。 色々調べてjavascriptで渡そうと思ったのですが、 javascriptの変数に格納されたデータを、 phpの変数に格納する方法が分からずに挫折しました;; やはりこういう処理はjavascriptでしかできないのでしょうか? javascriptは勉強不足であまりわからないので、 出来ればphpだけで処理したいのです。 どなたかいい方法を教えて下さい。 どうぞよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
formで2ヶ所に送るというのは、なぜ必要なのですか? 一つ目で受け取ったさいに、2つ目プログラムの方の 処理もやってしまえば、ワザワザむだなトラフィックを流す こともないでしょう。再考なさった方がよろしいかと。 なお、とりあえずjavascriptでやるなら actionとtargetを指定してsubmit その後、actionとtargetを変更してsubmit とすると行けるかもしれません。
- athanasius
- ベストアンサー率37% (361/964)
#1です。 javascript で、フレームで分割されているフォームにデータを 入力するのは簡単にできます。 実際、私が昔使ったことがあります。 サンプルは、ありませんが、具体的には、フレームに名前とフォームの名前を指定して、その中のオブジェクトに対してデータを入力するというものです。 action は、一つのフォームには一つだけです。 javascript のサンプルを調べれば分かるはずです。 フレーム別にフォームが分かれているならば、それぞれをサブミットすることもデータの操作と同様にできます。 下記のサイトで参考になるものがあります。 http://www.openspc2.org/reibun/javascript/
お礼
度々のご回答、ありがとうございます。 >action は、一つのフォームには一つだけです。 やはり action は二つにする事は出来ないですよね; 実は、教えて頂いたサイトは、 ここに投稿する前に参考にしていました。 それをもとに、 > 具体的には、フレームに名前とフォームの名前を指定して、 > その中のオブジェクトに対してデータを入力するというものです。 上記と全く同じプログラムを作ってみたのですが、 やはり、javascriptの変数に格納されたデータを、phpの変数に渡す方法がわからず、 断念してしまったのです;;
- athanasius
- ベストアンサー率37% (361/964)
javascript でも、フォームのデータを渡したいなら、POSTかGETするしかないと思いますが。 PHPは、サーバでしか動かない以上、GETかPOSTが順当なところかと。 javascript でフォームのデータを渡すのも、SUBMITも出来ますから。 AJAXという手もありますが、レベルは高くなります。
お礼
ご回答ありがとうございます。 データはPOSTで渡そうとしています。 通常であれば送る側は、 <form action="データを渡すURL" method="post"> <input name="スーパーグローバル変数名" type="text" size="50" /> <input type="submit" value="送信"/> </form> とし、受け取り側は、 $_POST[スーパーグローバル変数名] でいけますが、 今回は同じページのフレーム内に、しかも2箇所に送りたいのです。 フォームのactionで2箇所の送り先を指定出来ないか?とも考えましたが、 まず、フレームを超えてデータを渡す事も分からないですし、 actionを2箇所指定する方法があるのかどうかも分からない始末です…;; どうすればフレームを超えてデータを渡せるのでしょう? サンプルスクリプトなどあれば、とてもありがたいです。
お礼
ご回答、ありがとうございます。 >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 は極力使いたくないのですが、他に方法はないでしょうか?;;