2011-05-16 100 views
2

我有一个PHP表单,其中包含一个文件在提交时上传。 由于我允许非常大的文件,页面通常可以在那里加载很长时间。PHP表单处理时加载gif

有没有办法让用户看到某种加载动画?

+2

的JavaScript函数插入动画到DOM,绑定到表单的提交事件。 – drudge 2011-05-16 18:37:10

回答

4

你需要JQuery的使用我的代码,但它是值得的:

将这个脚本标签在您的网站<head>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script> 

把隐藏加载GIF的地方,无论你想看到它

<img id="loader" src="loading.gif" /> 

隐藏它在页面加载:$('#loader').hide();

然后在Javascript(甚至更好的JQuery),里面你提交功能...显示/隐藏:

function submit() 
{ 
    $('#loader').show(); 
    // do your upload stuff 
    $('#loader').hide();  
} 
+0

提交简单数据时这是一个好主意,但如何提交一个非常大的文件?它在主流浏览器中如何工作? – Tadeck 2011-05-16 18:43:57

+0

@Tadeck:PHP不适合大文件上传。如果上传中有任何故障,则已上传的整个部分很可能会丢失并且不可恢复。但除此之外,浏览器并不在乎上传是1字节还是50千兆字节 - 如果浏览器可以访问该文件,则可以上传。 – 2011-05-16 18:46:27

+0

@Marc我不明白你的答案。当然,PHP有很多缺点,而其他语言在实现特定功能时更好,但它与我提交用户输入的文本数据还是提交大文件有关?这种情况是,你不能通过AJAX提交文件,除非你使用一些Flash等。这与服务器端无关,你可能会在用户上传文件之前隐藏旋转按钮(加载器)。这是上述解决方案的弱点,而不是PHP。 – Tadeck 2011-05-16 18:56:18

0

我会把一个隐藏的图像放在页面上的某个地方。在表单提交时调用JavaScript函数,并让该函数显示图像,然后提交表单。