PHP、JavaScript、共に初心者なので、的を得ていない質問かもしれませんが、是非ともご教授お願い致します。
やりたいこととしては以下の内容で、複数ではなく、1つの別ウィンドウしか表示されずに困っております。
(1)元のウィンドウで、入力や選択を行った後、結果ボタンを押し、"その都度"別ウィンドウを
表示させる。(つまり複数別ウィンドウを表示させたい)
(元のページはそのまま残す)
(2)元ウィンドウの入力値をPOSTデータとして、別ウィンドウに受け渡す。
(3)別ウィンドウでも、常に同一のロジックを必要とするため、都度開く別ウィンドウを同一PHPファイルとしたい。
上記で使用しているソース(主要な部分抜粋)は以下の通りです。
【元ウィンドウ】
<script type="text/javascript">
<!--
function newsubmit() {
window.open("about:blank", "kekka", "WindowStyle");
mainform=top.window.document.motoform;
mainform.action = "kekka.php";
mainform.target = "kekka";
mainform.submit();
}
// -->
</script>
<form name="motoform" method="POST" action="<?= $_SERVER['PHP_SELF'] ?>">
・・・
<input type="button" value="結果" name="kekka" onClick="newsubmit();">
・・・
<select name="no" onchange="this.options[this.selectedIndex].value">
<option value="100">100</option>
<option value="200">200</option>
<option value="300" selected>300</option>
<option value="400">400</option>
<option value="500">500</option>
</select>
・・・
</form>
【別ウィンドウ(kekka.php)】
<form name="subform" method="POST" action="<?= $_SERVER['PHP_SELF'] ?>">
・・・
<?php
print "no: " .$_POST['no']. "<br>\n";
?>
・・・
</form>
POSTデータの受渡しは、出来ています。
別ウィンドウのURLを、001.html、002.html、003.html・・・のように、別々のHTMLにしようとも考えましたが、
それぞれの別ウィンドウでどうしてもPHPの同一ロジックを入れたいため、同一のkekka.phpとしています。
それ故に、既に同じウィンドウ(kekka.php)が表示されているので、別ウィンドウが上書きされてしまい、
1つの別ウィンドウしか表示されません。
同じPHPを使用して、複数、別ウィンドウを表示させる方法、もしくは、別案などございましたら、
ご教授願えますでしょうか。お願い致します。
No.1ベストアンサー
- 回答日時:
submitする際にIDとか連番とか何かユニークになる値をjavascriptに渡してやって、
>window.open("about:blank", "kekka", "WindowStyle");
の"kekka"というwindow名の部分をphpから受け取った値にしてやればいけるのではないでしょうか。
多分現状は固定のwindow名(kekka)になっているから上書きされてしまうんだと思います。
アドバイス、どうもありがとうございます。
参考にさせて頂き、早速試してみました。
ただ、元ウィンドウを更新(F5)しないと、やはり同一別ウィンドウとなってしまいます。
(更新すると、複数別ウィンドウが表示されます。)
キャッシュか何かが原因なのでしょうか?
変更したソースは以下の通りです。
【元ウィンドウ】
・・・
function newsubmit(id) {
window.open("about:blank", id, "WindowStyle");
mainform=top.window.document.motoform;
mainform.action = "kekka.php";
mainform.target = id;
mainform.submit();
}
・・・
<input type="button" value="結果" name="kekka" onClick="newsubmit(<?= (string)time() ?>);">
・・・
重ね重ね申し訳ございませんが、ヒントを頂けると幸いです。
No.3
- 回答日時:
#1です。
追記ですが、submitと同時に元phpをjavascriptでリロードでもいけるっちゃあいけますね(笑)
javascriptで時間生成の方法を取るのであれば、特に正確な時間を出す必要はないので、
function newsubmit(){
ymd = new Date();
yy = ymd.getYear();
mm = ymd.getMonth();
dd = ymd.getDate();
ho = ymd.getHours();
mi = ymd.getMinutes();
se = ymd.getSeconds();
wname = yy + mm + dd + ho + mi + se;
window.open("kekka.php",wname);
mainform=top.window.document.motoform;
mainform.method = "POST";
mainform.action = "kekka.php";
mainform.target = wname;
mainform.submit();
}
こんな感じで大雑把でいいと思います。
どうもありがとうございます。
サンプルを参考に、早速試して、思うように動作致しました。
このような初心者のために、丁寧に教えて頂き、感謝致しております。
それとともに、自身の勉強不足を実感致しました。。。
本当にありがとうござました。
No.2
- 回答日時:
#1です。
>ただ、元ウィンドウを更新(F5)しないと、やはり同一別ウィンドウとなってしまいます。
現在の書き方でtime()の値をウインドウ名にしても、htmlが生成される際にphpが取得する値なので、一旦作られたらウインドウ名は固定でつけたのと同じになってしまいます。
F5を押せばtime()が生成しなおされてウインドウ名が変わるので別ウインドウになるということです。
ですので一意にする値の作り方を変えた方が良いと思います。
kekka.phpに渡したい値で一意になるような値があればその値をウインドウ名にするのがベターかもしれないですね。
もしくはonClickでは特に引数を渡さずにjavascript側で時間を取得・生成してそれをウインドウ名にするのならいけそうなきがします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
php メールフォーム プルダウ...
-
phpで重複チェック
-
複数 selectフォームから今回on...
-
ラジオボタンとプルダウンで困...
-
[PHPとHTML]リストボックスにつ...
-
HTMLのリンクをクリックするこ...
-
DBの値をチェックボックスに反...
-
PHP ボタンが押されたら処理を...
-
HTMLで前の画面に戻る時、入力...
-
変数の書き方について
-
テキストボックスに初期値を入れる
-
ボタンをクリックでPHP文を実行
-
ラジオボタンを押すと、表示が...
-
【smarty】予約変数に可変変数
-
高高兴兴は高兴と何が違います...
-
フォームのPOST情報が渡らない?
-
phpで、フォームのラジオボタン...
-
バックスラッシュの対策について
-
リストボックス 複数選択のデ...
-
UPDATEできない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
連動させたいセレクトボックス...
-
<select>文、foreachと初期値設定
-
セレクトしたときに全て初期状...
-
2つのプルダウンメニュから受け...
-
【PHP&JavaScript】複数の別ウ...
-
プルダウンで選択された値を保持
-
ループでチェックボックスにche...
-
MySQLのレコードを検索、...
-
チェックボックスで渡ってきた...
-
phpでのselect値の取得・表記に...
-
複数のセレクトボックスで
-
phpで重複チェック
-
データベースから年月日を抽出...
-
「"」(ダブルクォーテーション)...
-
PHP プルダウンメニュー MYSQL
-
[Ethna]selectボックスに空値を...
-
複数 selectフォームから今回on...
-
PHP で画面の一部だけを変えたい。
-
phpでのセレクトボックスの値を...
-
チェックボックス&セレクトボ...
おすすめ情報