• 締切済み

formデータ送信時にフレームページとフレーム名を指定する方法

お世話になっております。 質問ですが、メールフォームのformデータを送信する際、プレビュー機能や送信完了メッセージがでます。 普通はformタグでaction="http://~/abc.cgi"とすれば送信ボタンを押すとabc.cgiが開いて確認画面等がでるのですが、私の場合は フレームページではない送信する内容を書くところ から↓ フレームページである123.htmlの『1』というフレーム名のところにプレビューや送信完了メッセージをだしたいのです。(要するにフレーム名『1』にabc.cgiを表示させたい) いろいろ記述法を探したのですがいまいちわかりません^^; どなたか具体的にご伝授いただければ幸いです。 ちなみにmethodはpostです。 よろしくお願いいたします。m(_ _)m

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

みんなの回答

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.2

こんにちは フレームで分けて上が送信内容の記入するhtmlで下のフレームに123.htmlがありその中のフレームにpostするのではなく 送信内容を記入するhtmlからpostして画面を123.htmlに変更してからその中のフレームにabc.cgiを呼び出しそこにform内容をpostしたいということですか? それだと結構難しいのかな? 一応こんな感じだと出来るのはできますけど・・・ 【送信内容記入.html】 <script language="javascript"> <!-- function url() { id = document.form.id0.value; name = document.form.name0.value; win = window.open("123.html",""); win.ifr.location.href = "abc.cgi?id="+id+"&name="+name+""; } //--> </script> <form name="form"> <input type="text" name="id0"> <input type="text" name="name0"> <input type="button" value="in" onClick="url()"> </form> 【123.html】 <iframe src="" name="ifr"></iframe> (<frameset>でframe分けしている場合も同じ<frame name="ifr">であればよい) 他のやり方としてはmethod="get"で123.htmlに送って (urlがh ttp://***/123.html?id0=**&name=**という感じになりますよね?) これをjavascriptなどで分解して?以降を取得して ifr.laocation.href = "abc.cgi?id=**&name=**"; のようにして表示させることも出来るかと思いますけど分解の仕方をまだ知らないのでこちらの方法でのアドバイスは出来ないです(><) 他にはcookieを使うとか(こちらもまだ勉強中(><) あとあまり本題とは関係ないですがnameとかはあまり数字とかでするのではなくアルファベットからはじめた方がいいと聞いたことがあります

n31792
質問者

お礼

大変遅くなりまして申し訳ありません。 伝授頂きました内容は申し訳ありませんが意図しているものではありませんでした。 また、JavaScriptもお使いのようですが、無効にしている方も多いので採用が できない状態です。また、何かの時に使わせていただきます。 >nameとかはあまり数字とかでするのではなくアルファベットからはじめた方がいいと聞いたことがあります ここでは一例として示しただけで、本来はアルファベットにしております。 >getで送る メールフォームをgetで送信ってどんなことになるんでしょう… 聞いたことすらありません… これで回答を締め切らせて頂きます。 回答いただき、誠にありがとうございました。

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.1

こんにちは <form action="abc.cgi" method="post" target="フレーム名"> でおそらくいけると思います

n31792
質問者

補足

ではなく、たとえば123.htmlの『1』というフレーム名にabc.cgiを表示するようにしたいのです。もう少しそこを強調すべきでしたね^^; 図なんかだしたほうがいいんですかね…

関連するQ&A

  • 上下フレームのあるページでの<form>データの送信方法について

    上下フレームに分かれたページがあるとします。 下フレームにテキストボックスなど入力エリアがあり、上フレームにボタンがあります。 上フレームのボタンを押して下フレームの情報を<form>タグの送信ボタンを押したみたいに送信することはできますか?

    • ベストアンサー
    • HTML
  • formの送信について

    いつもお世話になっております。 今回はFORMの送信についてお聞きします。 htmlでフォームの内容を送るには 1、<form action="xxx.cgi"> <input type="submit">  として送信 2、prototype.js等を使って function send() { var str = Form.serialize('form1'); new Ajax.Request ( "xxx.cgi", { "method": "post", "parameters": str, onSuccess: function() } ); } <form action="" id="form1"> <button onclick="send()"> があるとわかったのですが、両者の違いがわかりません。 2番だと非同期にもできるということはわかるのですが、 そのほかの違いをご教授願います。

  • Submitが使えないFormでのデータ送信

    次のようなFORMでSubmitがなくって画像クリックし、次の画面へ いく場合ですが、どういうコードを書けばいいのでしょうか? よろしくお願いします。 <FORM name=myForm action=http://abc.com/abc.cgi method=post> <TD> <INPUT type=hidden value=itemA name=mycmd> <INPUT type=hidden value=9999 name=myid> <INPUT type=image src="/img/image.gif" border=0 name=item> </TD> </FORM>

  • 違うフレームにあるフォームをsubmit(送信)

    JavaScriptかPHPかでも質問なのですが、Mainフレームには送信ボタンはありませんし、出来ない(しない)ものとします。 かわりにSubフレームが読み込まれたときにJavascriptでMainフレームのMainFormフォームをSubmitさせるような記述は出来ますでしょうか? その後PHPの変数でデータを操作しようと思っているのですが、PHPでデータを受け取れません。 要は、Javascriptを使わなくてもいいのですが、PHPで他のフレームにあるフォーム内のデータを受け取りたいのです。 どなたか助けてください。 ★★★★★★★★★Mainフレーム★★★★★★★★★ <form name="MainForm" action="Sub.php" target="Sub" method="post"> <input name="ABC" type="text"> </form> ★★★★★★★★★Subフレーム★★★★★★★★★★ -----JavaScript部------- parent.Main.document.MainForm.submit(); -----PHP部------- <?php extract($_POST); global $ABC; echo $ABC; ?>

    • ベストアンサー
    • PHP
  • 各フレーム画面にFORMタグ内の情報を送信する。

    <FRAMESET>タグで画面をフレーム分割して呼び出すこと出来ますが、 ここで各フレームを呼び出す際に、そのHTMLファイル内にある とあるFORMタグを指定して、その中のINPUTタグの情報も一緒に 呼び出すフレームへ一緒に送信したいのですが、どのようにやれば よろしいのでしょうか? 実際にサンプルを含めて教えていただけると嬉しいのですが、 ヨロシクお願いします。

    • ベストアンサー
    • HTML
  • 隣のフレームへForm情報をまとめて送信する。

    みなさん、はじめして。 自分は以下のようなHTMLファイルを作成しています。 ---------------------------------------------- ファイル名 : call.htm <html> <head><title>call</title></head> <frameset cols="*,*"> <frame name="win01" src="src01.cgi"> <frame name="win02" src="src02.cgi"> </frameset> </html> ---------------------------------------------- :"src01.cgi"を実行した結果、表示されたHTML <html> <head><title>frameA</title></head> <ScriptLanguage = "JavaScript"> <!-- function load_frame(w) { if (w.d1.value!="" && w.d2.value!="" && w.d3.value="") w.submit(); } //--> </script> <body> <form name="data" method="POST" action="src02.cgi"> <input type="text" name="d1"> <input type="text" name="d2"> <input type="text" name="d3"> <input type="hidden name="d4" value="abc"> </form> </body> </html> ---------------------------------------------- :"src02.cgi"を実行した結果、表示されたHTML <html> <head><title>frameB</title></head> <body> xxxxxxxxxxxxxxxxx・・・ yyyyyyyyyyyyyyyyy・・・ zzzzzzzzzzzzzzzzz・・・ </body> </html> ------------------------------------------------ どこかしら下のuruchiさんの質問に似てますね... call.htmを実行した結果表示された左側のフレームにテキストボックス3つにデータを入力し、その結果を画面に右にあるフレームに反映させるにはどのようにしたら、よろしいのでしょうか?(Javascriptで????になっている部分はどのうように記述したらよろしいのでしょうか)

    • ベストアンサー
    • HTML
  • form actionで二つ送信先を指定する方法を教えて下さい。

    プログラム初心者です。 構造としては… index.php index2.php index3.php 上記があり、index.phpの中身は下記のようになっています。 <frameset rows="200,*"> <frame src="index2.php"> <frame src="index3.php"> <noframes> <body>未対応ブラウザ向け内容</body> </noframes> </frameset> index2.phpの中身は以下のようになっています。 <form action="<?php $_SERVER["SCRIPT_NAME"] ?>" method="post"> ID:<input type="text" name="id"><br> 内容:<input size="50" type="text" name="txt"><br> <input type="submit" value="登録・編集"> </form> 上記ですと、post情報がindex2.phpだけに送信されてしまい、index3.phpに情報が送る事が出来ません。 このようなやり方はないと思いますが… <form action="index2.php" action="index3.php" method="post"> このように出来ればいいと思ったのですが…思うように動作しません。 方法が分かる方は是非教えてもらえると助かります。 よろしくお願いします。

    • 締切済み
    • PHP
  • テキストエリアのデータを隠しフィールドから隣のフレームに送るには?

    フレームが二つ(frame1,frame2)、frame1の隠しフィールドにデータ($DATA)を入れおき、submitボタンを押すとframe2に表示されるというものです。 一つのフォームでは無理なようなので二つフォーム(form1,form2)を設定してあります。ところが、このDATAの最初に部分、正確には最初の単語しか送られません。 $DATA='durch staendigen Gebrauch abnutzen'; <FORM action="frame1.cgi" name="form1" target="frame1"> <TEXTAREA rows="8" cols="39" name="dicdata">$DATA</TEXTAREA> </FORM> <FORM action="frame2.cgi" name="form2" target="frame2"> <INPUT method="POST" type="hidden" name="hiddenfield" value=$DATA> <INPUT type="submit" name="display_hiddenfield" value="フレーム2へ送信"> </FORM> どうして$DATAの最後まで送れないのでしょうか?テキストエリアを隠すことができればこの問題を解決できるのかもしれませんが。どなたかお教えください。

    • ベストアンサー
    • Perl
  • フレームで左右に分割したページにデータを渡すには?

    こんにちは! 教えて下さい。 A.asp(フレーム無し)というファイルのテキストボックスのデータをフレームで左右に分割されたB.asp(Right.asp (name=Right)とLeft.asp(name=Left))のLeft.aspに渡したいのですがうまくいきません。 A.aspのフォームのタグ <form name="form1" action="B.asp" method="post" target="left"> でいけるかなと思ったんですがダメでした。

  • ページ内の幾つかのformを1つの送信で送りたい

    初心者です。現在お店のホームページを作っているのですが、問合せのページでなかなかうまくいきません。すみませんがお知恵をお貸しください。 まず概要からいいますと、 商品上、複数の商品を一度に注文頂く事が多く、それを1ページにまとめたいと思っています。、 フォームは各商品を選べば、それに対応する項目が表示されます。 これを3つほどページ内に、同じ内容のものを設置し、1つの送信ボタンで送れないかと考えています。 そこで <script language="JavaScript" type="text/JavaScript"> <!-- function productA(sel) { var target = sel.value; var group = sel.form.getElementsByTagName("FIELDSET"); var i=0, fs; while(fs=group[i++]) fs.style.display = fs.id == target?"block":"none"; } function productB(sel) { var target = sel.value; var group = sel.form.getElementsByTagName("FIELDSET"); var i=0, fs; while(fs=group[i++]) fs.style.display = fs.id == target?"block":"none"; } //--> </script> として <boby> <form name="form1" method="post" action="cgi-bin/formmail.cgi"> 商品選択1<br> <select name="select1" onChange="productA(this)"> <option value="--" selected class="style9"> </option> <option value="A">A</option> <option value="B">B</option> </select> <fieldset id="A"> ■Aの質問: <select name="q1A" size="1"> <option value="--" selected class="style9"> </option> <option value="q1A_1" >q1_1</option> <option value="q1A_2" >q1_2</option> </select> </form> <form name="form1" method="post" action="cgi-bin/formmail.cgi"> 商品選択2<br> <select name="select1" onChange="productB(this)"> <option value="--" selected class="style9"> </option> <option value="A">A</option> <option value="B">B</option> </select> <fieldset id="B"> ■Bの質問: <select name="q1B" size="1"> <option value="--" selected class="style9"> </option> <option value="q1B_1" >q1B_1</option> <option value="q1B_2" >q1B_2</option> </select> </form> <INPUT TYPE="submit" VALUE="送  信"> という状況です。 <form>を分けている理由は1つのformにしてしまうと、商品選択1を記載し、 次の商品選択2がある場合、そこで別の商品を選択すると、先ほど記載した、 商品選択1がリセットされ、項目も別の商品の内容になってしまいます。 その為、formを分けている状態です。この状態では勝手にリセットはされませんが、 ただし、送信できません・・・ なので、この状態で送信できる方法はありませんか? もしくはformを1つにしてもいいので、その際各formで商品選択をしても、 リセットされない方法があれば教えてください。 本当に初心者なので、出来ない事をいっているのかもしれません。 大変お恥ずかしいご質問ですが、何卒ご教授頂ければ助かります。

専門家に質問してみよう