0

现在我在 PHP 中运行大 .sql 文件(在 PHP中运行的 MySQL 文件中使用 PHP 会话变量)的问题已经得到解决,我想显示一个我制作的加载栏 (.gif) 并显示一条消息用户数据正在上传到数据库中,因为我不希望用户认为他们的浏览器没有加载页面(因为此过程可能需要几分钟,具体取决于文件大小)。

<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.

上面是我想在查询运行时显示的图像和消息,但是在更新数据时我似乎无法通过白色的加载屏幕。我已经尝试在查询之后、查询之前回显消息,作为放置在 PHP 命令之前和之后的 HTML 代码 - 但我得到的仍然是这个邪恶的白屏。每次在查询完成之前加载消息都不会显示(具有讽刺意味的是),有没有办法在查询期间以我当前使用的格式显示它,还是我必须转向其他编程语言?非常感谢!

编辑:

我尝试在 php 标签之前和之后使用命令,但在查询完成之前它仍然无法运行:

<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...)

最后:

    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>

我做错了什么?

4

3 回答 3

1

使用 jQuery,您可以执行以下操作:

$("#imgId").show(); // Show loading image.

执行 PHP 脚本:

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

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

<img src="image.png" id="imgId" />
于 2013-11-06T10:53:02.573 回答
0

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

溶胶 1。当页面加载时触发查询时:(不使用 Ajax):

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

$(document).ready(function(){
  $('img').show();

});

$(window).load(function(){
      $('img').hide();
});

这将确保当页面的所有元素都被加载时,只有当加载器图像隐藏时。

溶胶 2

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

于 2013-11-06T10:46:06.023 回答
0

虽然这是一个老问题,但它可以在没有 javascript 的情况下完成。

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

于 2015-06-01T09:20:12.850 回答