簡體   English   中英

頁面加載后運行PHP

[英]Run PHP After Page Loads up

我最近創建了一個Facebook應用,該應用將一些內容發布到用戶組。 如果用戶發布到多個組,那么我想顯示一個進度欄。 它的HTML部分創建了一個具有文本區域的表單,該表單重定向到post.php文件。 我在該post.php頁面中發布給用戶組。 如我所說,我使用進度條顯示進度。 但是消息首先發布,然后進度條才起作用。 我很確定它的進度條。

簡而言之,首先在JS或HTML之前執行PHP部分。 因此,請幫助我解決這個問題。

這是我在post.php文件中所擁有的:

    <body style = "background-color: #4ea6e6;">
    <center>
        <div style = "width: 50%; margin-top: 5%; padding: 50px; background-color: #fff;">
            <div class="input-group" style = "height: 30px;">
                <progress min = "0" max = "100" value = "50" style = "height: 30px;">

                </progress>

                <span class="input-group-addon">
                    0%
                </span>
            </div>

            <br>
            <div class = "message">

            </div>

            <br>
            <div class = "alert alert-success success" style = "font-size: 18px; font-family: Muli; visibility: hidden;"><b>Great !</b> Your message was successfully posted !</div>

        </div>

    </center>
</body> <?php

    require_once 'libs/facebook.php';
    $config = array(
      'appId' => 'My app id',
      'secret' => 'my app secret',
      'fileUpload' => false, // optional
      'allowSignedRequest' => false, // optional, but should be set to false for non-canvas apps
    );

    $facebook = new Facebook($config);
    $groups = $_POST['groups'];
    $link = $_POST['link'];
    $message = $_POST['message'];
    $count = count($groups);

    for($i=1; $i<count($groups); $i++){

                $api = $facebook->api($groups[$i] . '/feed', 'post', array(
                    link => $link,
                    message => $message
                ));

                $api = $facebook->api($groups[$i]);

                $name = $api['name'];

                $j = ($i/(count($groups)-1))*100;

                ?>

                <script type = "text/javascript">
                var timeout = setTimeout(post, 0);
                function post(){

                    $('progress').attr("value" , "<?php echo $j; ?>");
                    $('.message').html("Posting to <?php echo $name; ?>");
                    $('.input-group-addon').html("<?php echo $j; ?> %");

                    if(<?php echo ($i/count($groups)); ?> != 1){
                        var timeout = setTimeout(post, 0);
                    }
                    else{
                        clearTimeout(timeout);
                    }
                }

                </script>
                <?php

            }

加載html和js后,您將無法執行sync PHP。

但是您可以執行對PHP腳本的XHR調用,這樣,一旦加載了js,AJAX調用就會開始,PHP腳本會在后台執行

這是如何在jQuery中使用AJAX

您可以在頁面加載后執行一個單獨的PHP文件,而無需JS,就像這樣。

請注意,“背景圖像”實際上是一個PHP文件。 該PHP文件將在正文底部,html文件及其上方的所有元素之后被調用時執行。

您可以通過CSS屬性中的GET將數據發送到PHP文件...

<!DOCTYPE html>
<html>
<head>
<title></title>
<style>
#runPHP
{ 
  background-image:url(script.php);
  display:none;
}
</style>
</head>
<body>

<div id="runPHP"></div>
</body>
</html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM