0

そのため、サイトにいくつかのモーダル ウィンドウがあります。私は通常、jquery と ajax を使用して、モーダル ウィンドウで何かを達成し、親ページの div を更新します。

ここでの私の問題は、ファイルをアップロードしているため、決して使用しないiframeを使用することを余儀なくされ、決して使用しないjqueryではなくjavascriptを使用しているため、少し迷って方向性を探しています。

モーダル ウィンドウから親ページの div を更新しようとしています。モーダル ウィンドウには、iframe をターゲットとするフォームがあり、アクションは別の php ページに向けられています。全体的な質問は、フォームがファイルをアップロードした後、更新された $attachment_table を親 div に送信するにはどうすればよいですか? 私はしようとしています:

Modal_window.php - ファイルをアップロードするフォームがあります。

<?php
$attachment_table = '';
while (($row73 = $answer17->fetch(PDO::FETCH_ASSOC)) !== false) {
                          $attachment_table .= '<tr>';
                          $attachment_table .= "<td><input name='checkbox[]' type='checkbox' id='checkbox[]' value='${row73[imageven_id]}'></td>";
                          $attachment_table .= "<td><a href='../php/viewimages.php?id=${row73[image_id]}')'>${row73[upload_name]}</a></td>";
                          $attachment_table .= "<td>${row73[image_category]}</td>";
                          $attachment_table .= "<td>${row73[upload_date]}</td>";
                          $attachment_table .= '</tr>';
                      };

?>    

<script type="text/javascript">

        function stopUpload(success) {
            var result = '';
            if (success == 1) {
                window.top.document.getElementById('attachment_table').innerHTML = <?php echo $attachment_table; ?>;
                document.getElementById('result').innerHTML = '<div class="msg-status" style="width:492px;">The file was uploaded successfully!<\/div><br/>';
            } else if (success == 0) {
                document.getElementById('result').innerHTML = '<div class="msg-error" style="width:492px;">There was an error during file upload!<\/div><br/>';
            } else if (success == 2) {
                document.getElementById('result').innerHTML = '<div class="msg-error" style="width:492px;">ERROR! Please upload a document with the following file types....<br/><br/>txt, doc, xls, rtf, ppt, pdf, jpg, jpeg, gif, png, xlsx, docx, png, pps, ppsx, ppt<\/div><br/>';
            }
            document.getElementById('f1_upload_process').style.visibility = 'hidden';
            return true;
        }
    </script>

modal_window_process.php - データベース コードを処理し、$result である応答を送信します

<script language="javascript" type="text/javascript"> 
window.top.window.stopUpload(<?php echo $result;?>);
</script>

誰かが私を正しい方向に向けることができますか? これを行う方法についてウェブ上で何も見つけることができませんでした。私は独学の初心者です。どうも。

4

1 に答える 1

0

iframe の親にこの機能がある場合

<script type='text/javascript'>
    function onUploaderReady() {
        alert('upload ready');
    }
</script>

このような応答を返すことで、 modal_window_process.php スクリプトでonUploaderReady関数を呼び出すことができます。

<html>
<head>
    <script type='text/javascript'>
        parent.onUploaderReady();
    </script>
</head>
</html>
于 2012-11-10T19:48:22.927 に答える