• ベストアンサー

frame間の値の受け渡し方法

環境はxp、apache2、php5、Postgresql8.2です。 1台のPCをサーバ&クライアントにしています。 ただ今PHPとPostgresqlの勉強をしています。 --------------------------- frameで左右に分かれています。 「左がメニュー画面」 「右がデータを表示する画面」 --- <frame name="hidari" src="aa.php"> <frame name="migi" src="ee.php"> メニュー用のPHPに --------------------------- aa.php(左のメニュー画面) 「number」というテキストボックスに入力して、 「検索」をクリックすると、 右の画面にデータが表示されます。 <FORM name="Form1" METHOD=post target="migi"> number<INPUT TYPE=TEXT NAME=number SIZE=5> <a href="./ee.php?func=ads" target="migi"><span style="color:#DB7093">検索</style></a> --------------------------- ee.php(左のデータ画面) テキストボックス「number」の値を受け取るために echo $_POST['number']; 「number」の値が表示されません。 どのようにすれば受け取れますか?

  • wee
  • お礼率19% (62/318)
  • PHP
  • 回答数4
  • ありがとう数3

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

  • ベストアンサー
  • eitetsu
  • ベストアンサー率64% (22/34)
回答No.3

PHPでの値の受け取り方を一度まとめなおしてみるといいかもしれません。 <FORM name="Form1" METHOD=post target="migi"> number<INPUT TYPE=TEXT NAME=number SIZE=5> <a href="./ee.php?func=ads" target="migi"><span style="color:#DB7093">検索</style></a> 1)上記の例だと<form>タグが閉じていませんし、Actionが設定されていませんので、ee.phpを呼び出すことができないですね。 →この場合は、 <form name="Form1" method="POST" action="./ee.php" target="migi"> number<INPUT TYPE="TEXT" NAME="number" SIZE="5"> <input type="submit" value="検索"> </form> としてあげる必要があります。 2)<a>タグでphpを呼び出した場合は、?以降にかかれたパラメータのみが、$_GETで引き渡されるだけです。 上記の例では、「?func=abs」のみですから、ここから呼び出されたばあいは、$_GET["func"]="abs"という値しかee.phpでは利用できません。 こちらでnumberの値を受け渡したければ、JavaScriptを利用するしかないですね。

wee
質問者

お礼

ご返事有り難うございました。 ようやく理解することが出来ました。 有り難うございました。

その他の回答 (3)

  • wp_
  • ベストアンサー率54% (132/242)
回答No.4

>"か'は、どっちの方が良いということはありますか? HTMLではどちらも機能的に差異はありません。 PHPでは二つの意味は違いますが、その辺はマニュアル等参照すると良いです。 ><input type="submit" .... >を使った方が宜しいのでしょうか? 「質問者様がどうしたいか」によります。 単純に見栄えの問題なのでどちらでもかまいません。 >そもそもこのようなことはしないのでしょうか? いや、当方は結構多用しますよ。フレームではなく、リンクでsubmit()と言う意味ですけどね。

wee
質問者

お礼

ご返事有り難うございました。 大変に参考になりました。

回答No.2

JavascriptでSubmitするよりも、Submitボタン使ったほうが楽だと思います。 深く考えずに書けますし、Javascriptだとクライアントの環境に依存して 動かない場合がありますから、今回は特に必要ないかと。 もっともデザイン上の制約とか、フォームが複雑になってるとか、複数 処理のボタンがあるとか、入力値を加工してから投げるとか使うケース は色々ありますので、使わないことはないです。

wee
質問者

お礼

ご返事有り難うございました。 大変に参考になりました。

  • wp_
  • ベストアンサー率54% (132/242)
回答No.1

何から突っ込んでいいやらですが、 ><FORM name="Form1" METHOD=post target="migi"> <FORM name="Form1" METHOD="post" target="migi"> HTMLでは数字以外は"か'で括らねばなりません。 ><a href="./ee.php?func=ads" target="migi"><span style="color:#DB7093">検索</style></a> aタグとformタグは相互に関与しません。 つまり、リンクを押してもformタグのデータは送信されませんよ、ということ。 やるならば<input type="submit" .... >とするか、javascriptで <FORM action='ee.php' name="Form1" METHOD="post" target="migi" id='f1'> <input type='hidden' name='func' value='ads' /> <a href="javascript:document.getElementById('f1').submit()">検索</a> のようにするしかありません。

wee
質問者

補足

こんにちは。 ご返事ありがとうございました。 つっこみどころ満載と言うことで 申し訳ありませんでした。 少し質問があるのですが・・・。 >HTMLでは数字以外は"か'で括らねばなりません。 "か'は、どっちの方が良いということはありますか? >やるならば<input type="submit" .... >とするか、javascriptで javascriptを使うよりも <input type="submit" .... >を使った方が宜しいのでしょうか? というよりも そもそもこのようなことはしないのでしょうか?

関連するQ&A

  • ユーザ関数の呼び出し方法 その2

    ユーザ関数の呼び出し方法 http://oshiete1.goo.ne.jp/qa3567728.html で、質問をさせて頂いた者です。 お陰様で、だいぶ出来てきました。 frameで左右に分かれています。 「左がメニュー画面」 「右がデータを表示する画面」 メニュー用のPHPに //処理部分 <?php if($_GET["mode"] == 1){ //処理1のスクリプト include("./ee.php"); ads(); } と、しました。 そうすると 左のメニュー画面にデータが表示されてしまいます。 右のデータを表示する画面に更新したい場合 どのように書けば宜しいですか? --------------- <frame name="hidari" src="aa.php"> <frame name="migi" src="ee.php">

    • ベストアンサー
    • PHP
  • 左右に分かれているフレーム間での値の受け渡し

    こんにちは、はじめまして。 左右に分かれているフレーム(右にあるフレームを押下すると、左側のフォーム内の処理が走り、その結果(フラグなど)をサーバに送りたいです。 ソースは以下のようになっています。Javascriptで値の受け渡しをしたいのですが、どのようにすればsubmitができるかわかりません。どなたがご存知の方、よろしくお願いします。 ↓以下ソース↓ ~右側~ <form action="menu.php" method="post" name="form_menu"> <input type="button" value="test" onClick="push();">      省略 </form> <script language="javascript"> function push() {  --ここが分かりません-- ここで左側のフォームに送るフラグ値をセットして  それを左側のフォームにsubmitしたいです。 } </script> ~左側~ <form action="input.php" method="post" name="form_input">      省略 </form> ~フレーム~ <FRAMESET cols="80%,20%" frameborder="0"> <FRAME SRC="input.php" name="frame_input"> <FRAME SRC="menu.php" name="frame_menu"> </FRAMESET>

    • ベストアンサー
    • PHP
  • フレームについて質問

    メニュー(五つ以上)が左。メインが右というようにフレームを設定したいのですがなぜか下のタグでやると、指定したHTMLが(例えばBBSとかが) 出てこないんです。それとその指定した画面は他のHPで発見するのです。 (そのHPを開いていたので・・・・) <FRAMESET FRAMEBORDER="0" COLS="20%,80%"> <FRAME SRC="3page.html"NAME="migi"> <FRAME SRC="index.html"NAME="bbs"> </FRAMESET> どうやればフレームを成功させる事が出来ますか?教えて下さい。。

  • ユーザ関数の呼び出し方法

    環境はxp、apache2、php5、Postgresql8.2です。 1台のPCをサーバ&クライアントにしています。 ただ今PHPとPostgresqlの勉強をしています。 「aa.php」から 「ee.php」のユーザ関数「ads()」を呼び出すために 以下のようにしてみました。 -------------- aa.php <a href="./ee.php function ads()" target="migi">質問</a> -------------- ところが Not Found というエラーなってしまいます。 どのように呼び出せばいいのか ご教示して頂けたら幸いです。 -------------- ee.php <?php function ads(){ ・ ・ ・ }

    • ベストアンサー
    • PHP
  • フレームの一部からフレームの一部への値の受け渡し

    フレームの一部からフレームの一部への値の受け渡しができなくて悩んでいます。 ・やりたいこと menufrm.html(フレーム)のfrm3(フレーム名)にあたるlist.phpから、 entryframe.html(フレーム)のframe3(フレーム名)にあたるentry.phpに、リンク(a href)で値を渡したい。 list.phpの社員リスト(DBから抽出)の名前部分がリンクになっており、クリックすると社員コードをentry.phpに渡しつつ画面遷移させたいと考えています。 今は以下のように対処していますが、これでは値はentry.phpに渡るものの、フレームが表示されずいきなりentry.phpに遷移してしまいます。 <JavaScript部分> function go_entry(){ // window.open("entryframe.html","_top"); // document.list_form.target = "frm3"; document.list_form.action ="entry.php"; // document.list_form.submit(); } <HTMLのリンク部分> <a href="entry.php?syain_cd=<?= $row["syain_cd"] ?>" target="_top" onclick="go_entry()"><?= $row["syain_name"] ?></a> 使用言語はPHPですが、どちらかというとPHPよりもHTMLかJavaScriptの問題だと思い、こちらで質問させていただく次第です。ご存知の方がいらっしゃいましたら、どうぞよろしくお願いいたします。

  • フォームからフレーム内へのデータ受け渡しについて

    いつもお世話になります。 フォームからフレーム内にデータを流してもデータの反映がうまくいきません フォームのソースは下記の通りで、受け側は、3つのフレームで構成されています。 データの送り先は、3つあるフレームのひとつで<FRAME name="bottom" src="URL01.php">になります。 フレームを使わずに、フォームからURL01.phpにデータを送信するときちっと反映されます。 なぜ、フレームを使ったときは、データが反映されないのかがわかりません、ご教示をお願いいたします。 <html> <head> <title></title> <body> </head> <form method="POST" action="URL" target="bottom" name="db_login"> <table border="0"> <tbody> <tr> <td>データベース名</td> <td><input size="20" type="text" style="ime-mode:disabled" name="db_name"></td> </tr> <tr> <td colspan="2" align="center"><br> <input type="submit" value="接続"> </tr> </tbody> </table> </form> </body> </html>

    • 締切済み
    • PHP
  • フレーム内に画像を表示する際、画像をフレームサイズに合わせたい。

    Webページで、フレームを使ってるんですが、フレーム内に表示する画像のサイズがマチマチで(画像の元サイズがとても大きかったりして)見栄えが良くありません。 main.htmlというソースを置いて、そこからタイトル表示用HTMLと画像リスト用HTMLをフレーム内に表示。 画像リスト用HTMLからAタグで画像表示用フレームに画像を表示するよう記述。 単にこれだけだと、ブラウザごとに画像サイズがフレーム内に収まるよう調整されたり、されなかったりなんですよ。 どうにか、強制的にフレーム内に表示させるようにする方法を教えてください。 ------------------------------------------------- main.htmlの抜粋↓ ------------------------------------------------- <frameset rows="50,*"> <form name="frm1"> <frame src="title.html" name="ue"> <frameset cols="187,*"> <frame src="list.html" name="hidari"> <frame src="./img/1.jpg" name="migi"> </frameset> </form> </frameset> ------------------------------------------------- list.htmlの抜粋↓ ------------------------------------------------- <a href="img/2.jpg" target="migi">19</a>

  • フレームとBODYについて

    フレームで作成したページににメニューを表示したいのですが、うまくいきません。 <BODY onScroll="setMenu"> <FRAMESET COLS="80,*" FRAMEBORDER=0 BORDER=0 FRAMESPACING=0> <FRAME SRC="hidari.html" NAME="HIDARI"> <FRAME SRC="migi.html" NAME="MIGI"> </FRAMESET> <DIV ID="fMENU" STYLE="POSITION:ABSOLUTE; TOP:0; LEFT:0;"> <IMG SRC="../img/var.jpg" NAME="VAR" WIDTH=101% HEIGHT=25 STYLE="filter:Alpha(opacity=40);" onMouseOver="change(this,100);" onMouseOut="change (this,40);"> <script src="detail.js"></script> </DIV> とするとメニューは表示されますが、フレームが表示されません。 <FRAMESET COLS="80,*" FRAMEBORDER=0 BORDER=0 FRAMESPACING=0> <FRAME SRC="hidari.html" NAME="HIDARI"> <FRAME SRC="migi.html" NAME="MIGI"> </FRAMESET> <BODY onScroll="setMenu"> <DIV ID="fMENU" STYLE="POSITION:ABSOLUTE; TOP:0; LEFT:0;"> <IMG SRC="../img/var.jpg" NAME="VAR" WIDTH=101% HEIGHT=25 STYLE="filter:Alpha(opacity=40);" onMouseOver="change(this,100);" onMouseOut="change (this,40);"> <script src="detail.js"></script> </DIV> とすると、メニューは表示されませんが、フレームは表示されます。 両方表示させたい場合はどうしたらいいでしょうか?

    • ベストアンサー
    • CSS
  • ボタンを用いたフレームのリンクについて

    フレームで右と左に分割していて左のフレームで数字を入力して計算と書かれたボタンを押すと右のフレームに計算結果を表示する方法がわかりません。 具体的なソースとしては まず、フレーム分割部分は <html> <head> <title>計算機</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <Frameset cols="25%,*" Frameborder="yes" Scrolling="auto"> <frame src="calc.html" NAME="hidari"> <frame src="calc.php" NAME="migi"> </frameset> </html> このようになっていてcalc.htmlは <html> <head> <title>calc.html</title> </head> <body> <form name="form1" action="calc.php" method="post"> <input type = "text" name = "txtA"> +  <input type = "text" name = "txtB"> = ?  <br> <input type="submit" value="計算"> </form> </body> </html> このようになっておりcalc.phpは <html> <head> <title>calc.php</title> </head> <body> <?php $a = $_POST['txtA']; $b = $_POST['txtB']; $c = $a + $b; print ($a." + ".$b." = ".$c."\n"); ?> </body> </html> このようになってます。 現在は計算ボタンを押すと左フレームにcalc.phpが表示されるのでこれを右フレームに表示させたいです。 どなたか詳しい方お願いします。

    • ベストアンサー
    • HTML
  • フレームについて

    今までフレーム機能の表示で携帯とPCに分けていましたが、最近はうまく表示できません。 <frameset cols="190,*" frameborder=0 border=0> <frame src="content.html" name="hidari"> <frame name="migi" src="index.php"> <noframes> <A HREF="index.php">PCの方はこちらへ</A><BR><BR> <A HREF="Mobility/index.php">携帯の方はこちらへ</A> </noframes> </frameset> 現状はこんな感じです。 何処が悪いのでしょうか? 何か携帯とPCを簡単に分ける方法はありませんか?

    • ベストアンサー
    • HTML