首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否在查询运行时显示加载栏和消息?

问是否在查询运行时显示加载栏和消息?
EN

Stack Overflow用户
提问于 2013-11-06 18:38:20
回答 3查看 10.2K关注 0票数 0

现在,在PHP (Using a PHP session variable within a MySQL file run in PHP)中运行大型.sql文件的问题已经解决了,我想要显示我创建的加载栏(.gif)和一条消息,表明用户数据正在上载到数据库中,因为我不希望用户认为他们的浏览器没有加载页面(因为这个过程可能需要几分钟的时间,具体取决于文件的大小)。

代码语言:javascript
复制
<img src='includes/loadingbar.gif' width='128' height='15' alt=''/></p>
Uploading your school data into the database, please wait.
This process can take a while depending on your file size and connection.

上面是我想要在查询运行时显示的图像和消息,但当它更新数据时,我似乎无法通过白色加载屏幕。我试着在查询之后,查询之前,作为HTML代码放在PHP命令之前和之后回显消息,但我得到的仍然是这个邪恶的白屏。每次加载消息直到查询结束才出现时(讽刺的是),有没有办法在查询期间以我当前使用的格式显示它,或者我必须转向其他编程语言吗?非常感谢!

编辑:

我试着在php标签之前和之后使用一个命令,但直到查询完成后它仍然不会运行:

代码语言:javascript
复制
<div id="message" div align="center"><img src="includes/loadingbar.gif" width="128"
 height="15" alt=""/>
<br />
Please wait while your school data is being uploaded into the database.
This can take a short while depending on your file size and connection.
</div>

<script type="text/javascript">
$(document).ready(function()
{$('message').show(); });
</script>


<?php   
session_start();

$page_title = 'SQLTest';
include ('includes/header.html');

require ('mldb_connect.php');
(etc...)

最后:

代码语言:javascript
复制
    if ($populateresult)
   {
   $replace = $_SESSION['path'].$_SESSION['CentreNo'].'_'.$_SESSION['School'].'_'
       .date('dmY_His').'.txt' ;

    rename ($path, $replace) ;
   }
 ?>

<script type="text/javascript">
$(window).load(function()
{$('message').hide();});
</script>

我在这方面做错了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-06 18:53:03

使用jQuery,您可以这样做:

代码语言:javascript
复制
$("#imgId").show(); // Show loading image.

执行PHP脚本:

代码语言:javascript
复制
$.post( "your_script.php", function( data ) {
    // $("#imgId").hide(); // Hide loading image.
    window.location = "http://www.example.com"; // Redirect to URL.
});

更新: imgId是您的镜像的id。例如:

代码语言:javascript
复制
<img src="image.png" id="imgId" />
票数 1
EN

Stack Overflow用户

发布于 2013-11-06 18:46:06

我可以告诉你两种不同的解决方案。

解决方案1。当页面加载时触发查询时:(不使用Ajax):

在这种情况下,您可以使用一些jquery。

代码语言:javascript
复制
$(document).ready(function(){
  $('img').show();

});

代码语言:javascript
复制
$(window).load(function(){
      $('img').hide();
});

这将确保页面的所有元素仅在加载器图像隐藏时加载。

sol 2。

如果你想通过Ajax做到这一点。当触发Ajax的事件被触发时显示图像,然后在Ajax的.success()或.done()时隐藏图像加载器。

票数 0
EN

Stack Overflow用户

发布于 2015-06-01 17:20:13

虽然这是一个古老的问题,但没有javascript也可以做到。

需要“sessions_start()”。转发到带有please wait对话框和标题部分forwarder <meta http-equiv="refresh" content="1; url= http://example.com/myPage.php"中的页面

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19809825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档