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