こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

子WINDOWの値を親WINDOWに反映したい

いつもお世話になっております。

現在、ファイルのアップロード部分を作成しているのですが、
そこで、ファイルをアップロードをすると子WINDOWSが表示されて、新しいファイル名などを表示しているのですが、その新しく作成したファイル名を、親WINDOWSのテキストエリアに表示させたいのです。

イメージとしては、子WINDOWS上に「ファイル名を転送」のようなボタンを作成して、それをクリックしたら、子画面が閉じて、親WINDOWSのテキストエリアにファイル名が記載されるようにしたいです。


親から子WINDOWを開く際は、window.openerを使って開いているのですが、
どうしても子画面から、親画面に値を反映させる部分がわかりません。

大変お手数ですが、ご教授いただけないでしょうか。

以下部分部分ではありますが、ソースを表示します。


★親WINDOW

■子WINDOWを開くjavasclipt部分

<script type="text/javascript">
function pop(obj) {
wobj = window.open("", "pop","scrollbars=yes,width=480,height=360");
obj.target = "pop";
wobj.focus();
return true;
}
</script>


■子WINDOWを開くことになるファイルをアップロードする部分

<form action="./upload.php" method="POST" enctype="multipart/form-data" target="pop" accept-charset="utf-8" onsubmit="return pop(this)">
<input type="hidden" name="MAX_FILE_SIZE" value="10485760" />
<!--1024*1024*10 = 10MB-->
<input type="file" name="my_file" />
<INPUT TYPE="hidden" NAME="shainid" VALUE="<%=sShainid%>">
<input type="submit" value="ファイルの転送開始する" />
</form>

■子WINDOWから、新ファイル名を記載したい部分

<form action = "touroku.asp" method="POST" onsubmit="return chkHissu(this)" name="form01">
<textarea name="tenpu" style="width:100%" rows=3 id="tenpu"></textarea>



★子WINDOW PHPの新しいファイル名の部分など

echo 'アップロードは成功しました。<br /><br />';

echo 'ファイル名 : '.$safehtml_myfile_name.'<br />';
echo 'MIME型 : '.$safehtml_myfile_type.'<br />';
echo 'ファイルサイズ : '.number_format($myfile_size).' bytes<br />';
echo '新しいファイル名 : '.$new_file_name.'<br />';


・$new_file_name.を親WINDOWのテキストエリア部分に渡して、反映したいです。




大変お手数ですが、ご教授宜しくお願いいたします。

投稿日時 - 2014-07-31 10:26:09

QNo.8699032

困ってます

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

成功したときに出力するphpでscriptを記入して
openerに対して処理すればいけるはずですが・・・・

たとえば

//main.htm
<script>
function pop() {
wobj = window.open("sub.htm", "pop","scrollbars=yes,width=480,height=360");
wobj.focus();
return true;
}
</script>
<input type="button" onclick="pop()" value="open">
<textarea id="hoge"></textarea>

として、

//sub.htm
<script>
window.opener.document.getElementById("hoge").value +="test\n";
</script>

とし、mainのボタンをおす度またsubをF5で更新するたびに
mainのテキストエリアに追記されますよね?
(そういうことじゃない?)

ただしポップはなにかと制限があるのと、死ぬほど嫌う人がいるので
自分や仲間内だけしか使わないサイトなど以外で運用するのはやめた方がいいでしょう

投稿日時 - 2014-07-31 14:42:37

お礼

回答ありがとうございました。
yambejpの回答を元に作成したところ、
うまくできるようになりました。

ありがとうございました。

投稿日時 - 2014-08-01 09:52:52

ANo.1

このQ&Aは役に立ちましたか?

9人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問