【问题标题】:PHP Showing iFrame on ResponsePHP 在响应时显示 iFrame
【发布时间】:2012-10-03 17:28:53
【问题描述】:

我有一个较早的帖子here,但答案根本没有帮助。我有这样的上传功能:

<iframe class="iframe" name="message" src="upload.php" style="display:none;"></iframe>
<form action="upload.php" method="post" enctype="multipart/form-data" target="message">
    Select a file: <input type="file" name="upload">
    <input type="submit">
</form>

我正在尝试做这样的事情:

$('.iframe').fancybox({
    'hideOnContentClick': true
});

因此,当 upload.php 给出响应(“文件已成功上传”)时,它会进入 iframe,这很棒。但我需要 iframe 来显示。 upload.php回复消息后如何取消隐藏iframe?

【问题讨论】:

  • 你是用 AJAX 做这个请求吗?
  • 您是否通过 AJAX 提交表单?
  • 你应该研究一下被称为 AJAX 的东西。它允许您的用户停留在同一页面上并向服务器发出请求。 JQuery 让这变得非常简单,因为您不必担心跨浏览器兼容性的样板。
  • @JustinWood 有什么方法可以用我拥有的东西做我想做的事,或者我 HAVE 使用 ajax 吗?
  • @MichaelBenneton 您没有必须使用任何技术。 AJAX 只会阻止用户导航到另一个页面。如果您不使用 AJAX,用户将被导航离开您所在的当前页面,并且您必须在第二页或之后的任何其他页面上显示您尝试显示的任何内容(取决于您是否要将用户转发到另一个页面)。

标签: php html iframe file-upload fancybox


【解决方案1】:

你真的必须有一个内联 iframe 吗?您可以尝试通过 ajax submit 表单,并在没有像内联 iframe 的情况下在 fancybox 中显示响应

<form id="uploadForm" action="upload.php" method="post" enctype="multipart/form-data" target="message">
    Select a file: <input type="file" name="upload">
    <input type="submit">
</form>

注意,我在表单中添加了一个 ID,以便我们可以通过该选择器对其进行操作。然后是 jQuery:

$("#uploadForm").bind("submit", function() {
 $.ajax({
   type     : "POST",
   cache    : false,
   url      : "upload.php",
   success  : function(data) {
    $.fancybox(data.responseText,{
      'hideOnContentClick': true
    });
   }
 });
 return false;
});

【讨论】:

  • 这不起作用,上传文件后 iframe 没有显示任何内容。
  • 此解决方案不使用 iframe
猜你喜欢
  • 2014-12-26
  • 1970-01-01
  • 2012-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-27
  • 2014-01-25
相关资源
最近更新 更多