フレームの一部からフレームの一部への値の受け渡しができなくて悩んでいます。
・やりたいこと
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の問題だと思い、こちらで質問させていただく次第です。ご存知の方がいらっしゃいましたら、どうぞよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
フレーム内部を呼び出すというのは、framesetを記述しているファイルを
呼び出してそれから、内部のファイルを新たにブラウザが呼び出すので、
1度では出来ないと思います。
entryframe.htmlもphp出力にして、一端このphpファイルでデータを受けて
以下のようなframeタグを出力してみてはいかがでしょう?
<frame src="entry.php?syain_cd=<?= $_GET["syain_cd"] ?>" >
hrm_mmmさんのやり方で試してみたところ、できました!list.phpのソースは以下の通りです。entry.phpのソースはhrm_mmmさんのコードを参考にいたしました。本当にどうもありがとうございました。
function go_entry(){
window.open("entryframe.php","_top");
//document.list_form.target = "frm3";
//document.list_form.action ="entry.php";
document.list_form.submit();
}
<a href="entryframe.php?syain_cd=<?= $row["syain_cd"] ?>" target="_top" onclick="go_entry()"><?= $row["syain_name"] ?></a>
No.2
- 回答日時:
frame3側がentry.phpにパラメータ付きで飛ばせばいいわけなので、
やり方として思いつくのは、以下の2つでしょうか。
・frm3からframe3をlocationで飛ばす方法
[frm3]
function go_entry() {
parent.frame3.location.replace("entry.php?syain_cd=xxx&syain_name=xxx");
}
・frm3からframe3にsubmitさせる方法
[frm3]
function go_entry() {
var f = parent.frame3.formxxx;
f.syain_cd = syain_cd;
f.syain_name = syain_name;
f.submit();
}
[frame3]
<form name="formxxx" action="entry.php">
<hidden name="syain_cd" value="">
<hidden name="syain_name" value="">
</form>
ご丁寧にありがとうございました。1番目の方法はJavaScriptの中で、PHPがDBから抽出してきた値を使わなくてはならないため、
function go_entry() {
parent.frame3.location.replace("entry.php?syain_cd=<?= $row['syain_cd'] ?>&syain_name=<?= $row['syain_name'] ?>");
}
のように書かなくてはいけないのですが(多分)、そうすると値が取れませんでした。
2番目の方法でも試してみたのですが、値は渡るものの画面はフレーム表示ができませんでした。
他の方のご回答で解決いたしましたが、osumitanさんのご回答も大変参考になりました。お時間を割いていただきましてどうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<iframe>~</iframe>内のwindow...
-
jqueryを利用してインラインフ...
-
<a href="#" …>の意味を教えて...
-
javascriptとApacheの設定
-
bodyにidをつける理由は何ですか?
-
ブラウザをJavaScriptで最小化…
-
JavaScriptのエラー ( 関数の...
-
ナンバーズ 4 の数列をランダム...
-
HTMLタグ 画面サイズを指定
-
Canvasを使って描画して面積取得
-
window.opener.location.href ...
-
「関数が定義されていない」と...
-
プルダウンメニューを別ファイ...
-
SQLのWHEREで全てを質問する方法
-
text/JScript.EncodeはMacIE5で...
-
中央に、アドレスバー表示した...
-
レンタルサーバーでjavascript...
-
ポップアップウィンドウの位置
-
プルダウンメニューの内容の取...
-
テキストボックス内にハイパー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スマホ上で、左右スワイプで次...
-
インラインフレームで表示され...
-
フレームを跨ぐドロップダウン...
-
エラー:書き込みができません ...
-
子フレームの自動リロードは可...
-
インラインフレームをドラッグ...
-
チェックボックスのチェックを...
-
onunloadイベントでの画面制御...
-
openerは使えないのでしょうか?
-
submitボタンで他のフレームを...
-
親フレームのURLによって、...
-
フレーム内のiframeのデータの...
-
HTMLフォームボタンによるター...
-
親フレームからkeydownイベント...
-
HTMLでサブフレームから親のス...
-
フレームでの右クリック禁止
-
別ページのインラインフレーム...
-
他のフレームのスクリプトを実...
-
Safariで<iframe>のinnerHTMLを...
-
<iframe>~</iframe>内のwindow...
おすすめ情報