我想知道是否有人可以帮我解决这个问题。我想创建一个加载页面,当PHP文件运行脚本时,该页面将显示给用户。下面是我写的文件和我正在尝试做的解释。
1)Index.html:这是用户看到的初始页面。他们将输入他们的名字和姓氏,然后点击提交按钮。一旦他们点击“提交”按钮,就会运行PHP脚本。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div>
<form action="saveFile.php?saving=1" id="contact_form" method="post">
First Name:
<input type="text" name="fname" id="fname" value="First Name" onblur="if(this.value == '') { this.value = 'First Name'; }" onfocus="if(this.value == 'First Name') { this.value = ''; }" />
<br>
Last Name:
<input type="text" name="lname" id="lname" value="Last Name" onblur="if(this.value == '') { this.value = 'Last Name'; }" onfocus="if(this.value == 'Last Name') { this.value = ''; }" />
<br>
<br>
<input value="Submit" type="submit" />
</form>
</div>
</body>
</html>
2)saveFile.php:这个PHP文件会将用户输入保存到文本文件中,然后运行一个bash脚本,该脚本接收文本文件并对其进行随机操作。脚本完成后,它将返回一个html文件,它将自动重定向到。
现在我遇到了这个问题:我放了这个GIF,让人们知道脚本正在运行,下一页很快就会出现。当我尝试这个时,第二页没有出现,它直接进入第3页。脚本和一切运行正常,它没有任何问题。实际发生的情况是,当用户点击提交按钮时,它会显示页面正在加载某些内容,并在准备就绪时跳转到第3页。 GIF根本没有显示,页面只是从index.html跳转到第3页。我试图制作文件.html或.php,但它给了我相同的结果。如果有人能给我一些关于如何让它工作的提示,那将非常感激。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<img src="loading.gif">
<?php
$fname = $_POST["fname"];
$lname = $_POST["lname"];
$text = $fname . PHP_EOL . $lname;
$file = "Contact.txt";
$fp = fopen($file, "a") or die("Couldn't open $file for writing!");
fwrite($fp, $text) or die("Couldn't write values to file!");
fclose($file);
$output = shell_exec("bash Script.sh");
header("location:$output");
?>
</body>
</html>
3)$ output:这是用户获取一些随机信息的最后一页。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div>
<p> Random information </p>
<a href="index.html" class=home> Click here to go back </a>
</div>
</body>
</html>
答案 0 :(得分:0)
您正在 saveFile.php 中重定向用户,因此它不会显示GIF图像。
1。首先,分配ID以提交按钮:
<input value="Submit" type="submit" id="submitForm"/>
2。将<image src="loading.gif" />
移至 index.html 页面,为其分配ID&amp;使用CSS将显示设置为无,以便默认隐藏 loading.gif 。
<img src="loading.gif" id="loader" style="display: none"/>
3. 从 saveFile.php 中删除header("location:$output");
。
4. 添加以下jQuery:
$(document).ready(function(){
$("#submiForm").click(function(){
$("#loader").show(); //show loading.gif
setTimeout(function(){
window.location = "your page name where you want to redirect";
});
}, 5000); //Redirect after 5 seconds..
});
注意:请勿将PHP
sleep
功能用于此目的。