質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1076閲覧

phpにてpost sabmitを使いpopウインドウにpostしたデータを渡したい。

duli3041

総合スコア2

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/08/24 06:41

編集2021/08/24 23:56

前提・実現したいこと

ウインドウ1からテキストボックスに入力したデータを、

<form action="ウインドウ2.php" method="POST"で、 <input type="text" name='pr_name'>したデータ(pr_name)内容をウインドウ2に渡して$_POST["pr_name"]で取得がしたい。 尚、ウインドウ2はポップウインドウで開きたい。です。

発生している問題・エラーメッセージ

<現状>
--source構成内容--
1.pos_ok.phpからpopwin1.php ...post sabmitで別windowで$_POSTは内容表示受取出来たが、タブ表示でしか出来ない。
2.pos_ng.phpからpopwin1.php ...ウインドウはポップ表示出来たが、$_POSTは受信が出来ない。
また、どちらも子ウインドウから呼び出した親ウィンドウへデータの渡しは出来ている。

<何故?>
submitにonclick="windowを指定しているとpostされた情報が伝送されない?たぶん使い方に..誤りがあるのかな? 是非ご教授頂きたくお願いします。

該当のソースコード

(pos_ok.php)

<!-- php id :pos_ok.php コメント :post sabmitで別windowで$_POSTはokだがタブになってしまう。 --> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>post sabmitで別windowにデータを渡すがokでしたがタグでオープンされる。</title> </head> <script type="text/javascript"> <!-- function openwin_1() { window.open("popwin1.php", "", "width=500,height=400" ); } // --> </script> <form action="popwin1.php" method="POST" target="_blank"> <b>親ウィンドウ (post sabmitで別windowで$_POSTはokだがタブになってしまう。)</b> <p>項目1:<span><input type="text" name='pr_name' id="id_pr_name" value=""></span></p> <p>項目2:<span><input type="text" name='pr_age' id="id_pr_age"></span></p> <input type = "submit" value="子ウィンドウを開く"> </form> <?php

//■メニュー戻り
echo '<button onclick=location.href="menu.html">';
echo "メニュー戻り";
echo '</button>';
?>

(pos_ng.php)

<!-- php id :pos_ng.php コメント :post sabmitで別windowにデータを渡すが$_POSTが取れずNGでした。 --> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>post sabmitで別windowにデータを渡すがNGでした。(pos_ng.php)</title> </head> <script type="text/javascript"> <!-- function openwin_1() { window.open("popwin1.php", "", "width=500,height=400" ); } // --> </script> <form method="POST" action="#" > <!--<form method="POST" action="popwin1.php" onsubmit="return false;">--> <b>親ウィンドウ (post sabmitで別windowにデータを渡すが$_POSTが取れずNGでした。)</b> <p>項目1:<span><input type="text" name='pr_name' id="id_pr_name" value=""></span></p> <p>項目2:<span><input type="text" name='pr_age' id="id_pr_age"></span></p> <input type = "submit" value="子ウィンドウを開く" onclick="window.openwin_1('popwin1.php', '', 'width=500,height=400');"> </form> <?php //■メニュー戻り echo '<button onclick=location.href="menu.html">'; echo "メニュー戻り"; echo '</button>'; ?>

(popwin1.php)受信側

<!-- php id :popwin1.php コメント :受信側別pop window --> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>受信側別pop window(popwin1.php)</title> </head> <script type="text/javascript"> <!-- function returnWindow() { // 親ウィンドウの存在チェック if(!window.opener || window.opener.closed){ window.alert('親ウィンドウがありません。'); return false; } // 子ウィンドから親ウィンドウへ値を渡す window.opener.document.getElementById("id_pr_name").value = document.getElementById("chl_name").value; window.opener.document.getElementById("id_pr_age").value = document.getElementById("chl_age").value; } --> </script>

<b>子ウィンドウ1</b>

<p>項目1:<input type="text" id="chl_name"></p> <p>項目2:<input type="text" id="chl_age"></p> <p><a href="javascript:void(0);" onclick="returnWindow()">親ウィンドウに値を渡す</a></p> <?php echo "php変数受け取り(pr_name)".$_POST["pr_name"]; echo "<br>"; echo "php変数受け取り(pr_age)".$_POST["pr_age"]; ?>

試したこと

上記スクリプトを実行して頂くと、pos_ok.phpの場合とpos_ng.phpの場合がわかると思います。
大変お手数ですが、ご教授頂けますと幸いです。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/08/24 06:52

コードはマークダウンのcode機能にてご提示ください。 あと、コード内は合ってるようですが文章中ではほぼ間違ってる文言があります。 例:sabmit
duli3041

2021/08/24 07:16

失礼しました。コメント欄スペル誤ってましたね-。すいません。 コードは良い?のかもしれませんが... pos_ng.phpは、method="POST"でtype = "submit"しても、 受け取れな? 何故? また、pos_ok.phpの方だと受け取れるが、ポップウィンドに出来ない状態です。 何か方法がありますでしょうか? よろしくお願いします。
m.ts10806

2021/08/24 07:20

質問は編集できます。 teratailはじめ、この手のサービスではコードを見やすくしてくれる機能があって使うのがある意味ルールです。 コード以外もあるので「ヘルプページ」からマークダウン、markdownの項を確認し、調整してみてください。 結構大事です。1クリックでコピーできますしコードハイライトやインデントもしてくれます。 (現在ついた回答のコード部分の表示)
duli3041

2021/08/24 23:58

有難うございます。
guest

回答1

0

ベストアンサー

HTML

1<script> 2window.addEventListener('DOMContentLoaded', ()=>{ 3 document.querySelector('#f1').addEventListener('submit',e=>{ 4 e.preventDefault(); 5 const nWin=window.open("",e.target.target,"width=100,height=100"); 6 e.target.submit(); 7 }); 8}); 9</script> 10<form action="sample.php" method="POST" target="newWin" id="f1"> 11<input name="a" value="123"> 12<input type="submit" value="send"> 13</form>

//sample.php

PHP

1<?PHP 2print_r($_POST);

投稿2021/08/24 06:55

編集2021/08/24 07:28
yambejp

総合スコア116443

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

duli3041

2021/08/24 07:19

上記のスクリプトに合わせてみましたが...変わりません?? pos_ng.phpは、method="POST"でtype = "submit"しても、受け取れな? 何故? また、pos_ok.phpの方だと受け取れるが、ポップウィンドに出来ない状態です。 ポップウィンドウでpostした情報を受け取る様には出来ないのでしょうか? 何か方法がありますでしょうか? よろしくお願いします。
yambejp

2021/08/24 07:29 編集

すみません、id書き忘れてたので追記しました 私の環境(Win)ではEdge、chorome、Firefoxで問題なく ポップアップでpost値を表示できます。
duli3041

2021/08/25 00:08

凄いです!ちゃんと動作しました。見直したソースをここに貼っても良いのかわかりませんが、 この様にて動きました。 (◎ttest.php) <script type="text/javascript"> window.addEventListener('DOMContentLoaded', (event)=>{ <!--親ウィンドウが表示(HTMLの読み込み)が完了しているか--> document.querySelector('#f1').addEventListener('submit',e=>{ <!--HTML要素を検出・取得することができるメソッドでsubmit--> e.preventDefault(); const nWin=window.open("",e.target.target,"width=500,height=400"); e.target.submit(); }); }); </script> ■親ウィンドウ画面■<br> <form action="sample.php" method="POST" target="newWin" id="f1"> 項目1:<input name="item1" id="oya_a_item1"> <br> 項目2:<input name="item2" id="oya_a_item2"> <br> <input type="submit" value="子ウィンドウPOP呼出し"> </form> <?PHP //■メニュー戻り echo '<button onclick=location.href="menu.html">'; echo "メニュー戻り"; echo '</button>'; ?> (◎sample.php) <script type="text/javascript"> <!-- function returnWindow() { // 親ウィンドウの存在チェック if(!window.opener || window.opener.closed){ window.alert('親ウィンドウがありません。'); return false; } // 子ウィンドから親ウィンドウへ値を渡す window.opener.document.getElementById("oya_a_item1").value = document.getElementById("chl_item1").value; window.opener.document.getElementById("oya_a_item2").value = document.getElementById("chl_item2").value; } --> </script> <b>■子ウィンドウ1■</b><br> 項目1:<input type="text" id="chl_item1"> <br> 項目2:<input type="text" id="chl_item2"> <p><a href="javascript:void(0);" onclick="returnWindow()">親ウィンドウに値を渡す</a></p> <br> <input type="button" name="button" value="このウィンドウを閉じる" onclick="window.close();"> <br> <?PHP print_r($_POST); echo "<br>"; $ans_item1 = $_POST["item1"]; $ans_item2 = $_POST["item2"]; echo "<br>"; echo "親項目1:".$ans_item1; echo "<br>"; echo "親項目2:".$ans_item2; ?> 有難うございました。尚、javascript箇所に説明コメントを入れようと...思ったのですが... 小職には難解です。このまま暗記するか... (^^; 頑張ってググって勉強します。 ご教授頂き本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問