首先加载整个html然后执行php

时间:2017-08-07 09:24:56

标签: php jquery html

我在这里有这个代码:

<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标记抱歉

3 个答案:

答案 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