• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:親画面に値を戻しテキストエリアに表示)

親画面に値を戻しテキストエリアに表示する方法

このQ&Aのポイント
  • 親画面に値を戻すための方法として、PHPのjavascript記述部分から別のPHPを呼び出し、SQLで値を取得し、親画面のテキストエリアに表示する方法があります。
  • しかし、呼び出し元でalert()のイベントがないと表示ができません。そのため、location.reload()などを試しても表示されない場合があります。
  • 解決方法としては、alert()をはずすことで表示がされるようになります。alert()はデバッグ用に設定しているため、削除しても問題ありません。

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

  • ベストアンサー
  • susie-t
  • ベストアンサー率86% (37/43)
回答No.2

補足に今気が付きました。すでに遅いかもしれませんが。 > 実はこの処理の前に1つだけではなく2つ別の関数を呼んでいる処理があり、syori.phpの値変更後にwindow.close()するわけにはいかないのです。 > 問題の関数はif文で通る時と通らないときがあり、必ず通る関数ではありません。なのでwindow.close()は動かしたくないのです。 すみません、このあたりの意味が掴めません・・・。 「別の処理」→ 二つの関数を呼ぶ ↓ if(条件?){ 「この処理」= shori.php → window.close()できない? }else{ 【案】この場合でもwindow.close()。テキストエリア更新はしない。 } いずれにしろ、syori.phpの「document.BtmFrm.elements・・・」の部分はクライアントサイドで動作するので、(クライアントの)レスポンス受信時に動作するwindow(この場合はフレーム)がなければ破棄されます。なので、window.closeはそれ以降に実行する必要があります。補足の意図を「条件によらずcloseさせたい」と解すれば、条件に合致しない場合でもサーバー側はwindow.closeさせるスクリプトを返却する必要があります。(テキストエリアの更新はしない。) 参考になりますでしょうか。

9pinkapple
質問者

補足

遅いレスですみません。再度の書込みありがとうございました。 残念ですが、今回は仕様が変更になったため、悩んでいた部分は解消することなく終わってしまいました。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • susie-t
  • ベストアンサー率86% (37/43)
回答No.1

phpは読めませんが、この現象はたぶん、子画面で別フレームに処理させようとしているけれども、その前にwindow.close();してしまっているのが原因と思います。(alertがあるとその間に処理できる) なので、syori.phpの値変更の後にwindow.close();を移せばうまくいくかもしれません。

9pinkapple
質問者

補足

回答ありがとうございます。すぐ回答くださったのに、お返事が送れてすみません。未だ試行錯誤してやってますが、解決に至りません。 確かに、window.close()を移すと思い通りの動きになりますが、 実はこの処理の前に1つだけではなく2つ別の関数を呼んでいる処理があり、syori.phpの値変更後にwindow.close()するわけにはいかないのです。 また、その2つの関数は、その関数内でエラーalert()処理があり、それがなければ、そのままwindow.close()に実行が移る仕組みなので、意図した動きをしています。 問題の関数をその2つの関数を呼んだ後にもってくる方法もありますが、問題の関数はif文で通る時と通らないときがあり、必ず通る関数ではありません。なのでwindow.close()は動かしたくないのです。 情報が不足していまして、すみませんでした。 再度、ご教授願えませんでしょうか。

すると、全ての回答が全文表示されます。

関連するQ&A