Php 在查询运行时显示加载栏和消息?

Php 在查询运行时显示加载栏和消息?,php,mysql,sql,Php,Mysql,Sql,现在我在PHP()中运行大的.sql文件的麻烦已经解决了,我想显示一个我制作的加载条(.gif)和一条消息,显示用户数据正在上载到数据库中,因为我不想让用户认为他们的浏览器没有加载页面(因为此过程可能需要几分钟,具体取决于文件大小) 正在将您的学校数据上载到数据库,请稍候。 此过程可能需要一段时间,具体取决于文件大小和连接。 上面是我希望在查询运行时显示的图像和消息,但在更新数据时,我似乎无法通过白色加载屏幕。我尝试在查询之后、查询之前,以PHP命令前后放置的HTML代码的形式回显消息,但我

现在我在PHP()中运行大的.sql文件的麻烦已经解决了,我想显示一个我制作的加载条(.gif)和一条消息,显示用户数据正在上载到数据库中,因为我不想让用户认为他们的浏览器没有加载页面(因为此过程可能需要几分钟,具体取决于文件大小)

正在将您的学校数据上载到数据库,请稍候。 此过程可能需要一段时间,具体取决于文件大小和连接。
上面是我希望在查询运行时显示的图像和消息,但在更新数据时,我似乎无法通过白色加载屏幕。我尝试在查询之后、查询之前,以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...)


正在将您的学校数据上载到数据库中,请稍候。 这可能需要一段时间,具体取决于文件大小和连接。 $(文档).ready(函数() {$('message').show();}); $(窗口)。加载(函数() {$('message').hide();});

这有什么不对吗?

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

Sol 1。当页面加载时触发查询时:(不带Ajax):

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

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

这将确保仅当加载程序图像隐藏时才加载页面的所有元素

溶胶2


如果您想通过Ajax实现这一点。在触发Ajax的事件触发时显示图像,然后在Ajax的
.success()
.done()
中隐藏图像加载程序。

使用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" />

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

需要“sessions_start()”。
转发到带有
请等待
对话框的页面,并在标题部分“转发器
查看
刷新
观察刷新
。但是您最好通过iframe/AJAX解决方案上传,并使用JavaScript显示进度消息。我建议您使用AJAX。试着看一下:为了确保我正确理解它,在查询开始之前,我输入了第一行代码(show),完成后,输入了第二行代码(hide)?在图像路径中显示“img”的地方?在a中输入。给div一个类或id。然后它是这样:$(“#div id”).hide(),这是选择器,如果我想显示文本,我只需确保该行文本也在同一个div中,对吗?是的,朋友。使用它作为容器div,您可以使用另一个div或一个span,其中包含img标记。在页面完成操作之前,它似乎不会调用它-让我用我所做的更新我的问题。这样会显示条和消息,但在第二部分中似乎不会运行脚本。我一定是做错了什么!更正:这确实有效。当脚本在后台运行查询时,它显示加载程序栏。我唯一的问题是:一旦查询完成,它不会从屏幕上消失,所以它永远留在浏览器中。是否有一种方法可以添加一个命令,以便在完成后转到其他页面?(甚至可以在后台脚本中这样做,行吗?@SeanLimpens您可以通过
窗口在JavaScript中重定向http://www.example.com");
窗口位置=”http://www.example.com";。我将使用重定向更新我的答案。我已经找到了window.location.href命令,在脚本识别php脚本完成后可以切换回主页-现在它就像一个魔咒一样工作。非常感谢你的帮助!:)
$("#imgId").show(); // Show loading image.
$.post( "your_script.php", function( data ) {
    // $("#imgId").hide(); // Hide loading image.
    window.location = "http://www.example.com"; // Redirect to URL.
});
<img src="image.png" id="imgId" />