我在这里有这个代码:
<div class="text-center">
<img src="img/ford_lodding.gif" alt="Loading GIF" style="width: auto; height: 500px;">
</div>
<?php require 'php/loading.php';?>
和php / loading.php是
<?php
if((!isset($_GET['id']) || empty($_GET['id']) && (!isset($_GET['email']) || empty($_GET['email'])))){
header('location:index.php');
}
$email = $_GET['email'];
$ke = $_GET['ke'];
header('Location:turn3.php?id='.$id.'&email='.$email);
?>
是的我正在创建一个加载页面,我的问题是如何首先加载整个html然后执行php。我已经尝试Load and display HTML first before PHP并且它不起作用,我在ajax中很新,所以请向我解释它是如何工作的。
如果你发现它是一个重复的问题,请随时标记它,请给我链接到该问题。谢谢。
编辑:我删除了ajax标记抱歉
答案 0 :(得分:0)
您可以在使用jquery加载文档之后将php文件加载到div中,例如:
<div id="mydiv">
</div>
<script>
$(document).ready(function(){
$("#mydiv").load('test.php');
});
</script>
正如提交中所提到的 - 你想要的是不可能的
答案 1 :(得分:0)
更改您的loading.php
以生成用于重定向到预期页面的JavaScript代码
$(document).ready(function() {
<?php
if((!isset($_GET['id']) || empty($_GET['id']) && (!isset($_GET['email']) || empty($_GET['email'])))) {
echo 'window.location.href = "index.php";';
}
else{
$email = $_GET['email'];
$ke = $_GET['ke'];
echo 'window.location.href = "turn3.php?id='.$id.'&email='.$email.'";';
}
?>
});
结果
$(document).ready(function() {
window.location.href = "index.php"
// or
// window.location.href = "turn3.php?id=15&email=my@ex.com"
});
答案 2 :(得分:0)
你可以在技术上先做输出,然后在你已经显示加载时继续继续运行其他php逻辑。
<div class="text-center"><img src="https://d13yacurqjgara.cloudfront.net/users/12755/screenshots/1037374/hex-loader2.gif" alt="Loading GIF"></div>
<?php
ob_flush();
flush();
//do things here -- login and stuffs
sleep(10);
echo "after sleeping and doing things for 10 seconds";
?>
然而 - 如果你像其他答案所暗示的那样提高你的逻辑,那么你会更适合。这样,根据您的代码 - 您将无法重定向到另一个页面,因为您已经输出了。
希望这有帮助。
在此处了解有关OB(输出缓冲)刷新的更多信息:http://php.net/manual/en/function.ob-flush.php