PHPスクリプトに投稿するフォームが投稿されたときに、target属性を使用してiframeをターゲットにするフォームがあります。この部分は正常に機能していますが、phpスクリプトがiframeに配置するいくつかの結果に基づいて何かを行う必要があります。
私が考えているのは、PHPスクリプトの投稿が終了すると、投稿の状態、成功したかどうか、投稿に成功した場合の最終結果など、さまざまな要素を含むいくつかの非表示の入力フィールドがエコーアウトされることです。
ただし、これを行うとiframeに配置されるため、メインのWebページは非表示の入力フィールドにアクセスできなくなります。
メインWebページがこれらの非表示の入力フィールドにアクセスして、メインWebページが何らかのアクションを実行できるようにするには、どのようにすればよいでしょうか。つまり、Webページ内のdivに特定のエラーメッセージなどを表示させることができます。
もう1つは、非表示の入力フィールドからデータを取得する方法がわかれば、いつ行って値を取得できるかをどのように知ることができるかということです。フォームがJavaScriptdocument.forms["myform"].submit()
コードを介して投稿されると、whileループを実行して、別の非表示の入力フィールドステータスが完了に設定されているかどうかを確認し、完了と表示されたら、非表示の入力フィールドから値を取得できると考えていました。 。
私が提案した方法が正しい方法であるか、私が達成したいことを実行するかどうか、またはそれを実行するためのより良い方法があるかどうかはわかりません。
アップデート
@lanzzが提案したことを試しましたが、うまくいかなかったようです。以下は私が試したことです。
$("iframe#image_upload_frame").on('load', function()
{
var iframeBody = this.contentDocument.body;
var data = $(iframeBody).find("#imageDirectory");
alert("data: " + data);
});
以下はiframeの定義方法です
<iframe id="image_upload_frame" name="image_upload_frame"></iframe>
そして、iframe内にあるphpスクリプトの非表示の入力フィールドをエコーアウトしています。
echo '<input type="hidden" id="imageDirectory" value="'.$imageDirectory.'" />';
エコーは明確に機能しています。iframeソースを表示すると、非表示の入力が表示されますが、アラートダイアログが機能していないように表示されることはありません。グーグルクローム開発コンソールによっても報告されているエラーはありません。