2012-11-10 23 views
0

所以我的网站上有几个模态窗口。我通常使用jquery和ajax来完成模态窗口中的某些内容,并更新父页面上的div。使用javascript更新父级div

我在这里的问题是我上传文件,所以我被迫使用iframe,我从来没有做过,我使用JavaScript,而不是我从来没有做过的jquery,所以我有点迷路,寻找一些方向。

我想从我的模态窗口更新父页面上的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 - 处理数据库的代码,并发送响应这是$结果

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

有人能指出我在正确的方向吗?我无法在网上找到关于如何做到这一点的任何内容,而且我是一位自学的noob。谢谢。

回答

0

如果iframe的家长有此功能

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

你可以有modal_window_process.php脚本通过返回这样

<html> 
<head> 
    <script type='text/javascript'> 
     parent.onUploaderReady(); 
    </script> 
</head> 
</html> 
+0

响应调用onUploaderReady功能,所以我觉得我做你的建议。我在模态页面上有stopUpload()。我从process.php页面通过stopUpload发送$ result到模态页面。现在,我如何处理$ attachment_table以获得最新结果并将该html输出发送到父页面并刷新div? –