簡體   English   中英

准備好在Jquery文檔上運行php腳本

[英]Run php script on Jquery document ready

我想知道是否只有在文檔准備好時才加載腳本的一部分的方法,我的意思是當所有css,js和圖像都下載后,運行有點沉重的php腳本。

在PHP中,我知道可以在jQuery上使用if else嗎?

可: ?

        <script>
        jQuery( document ).ready(function( $ ) {
        </script>
        <?php
         $script = $this->getAllItems();
        ?>
        <script>
        });
          </script>



    <div class="page">
            <?php echo $this->getChildHtml('header'); ?>
            <div class="main-container col2-left-layout">
                <div class="main container_16 clearfix">
                    <div class="col-main grid_16">
                        <?php echo $this->getChildHtml('top_callout'); ?>
                    </div>
                    <div class="col-main grid_16">
                        <?php echo $this->getChildHtml('breadcrumbs'); ?>
                    </div>
                    <div class="col-main grid_12">
                        <?php echo $this->getChildHtml('global_messages'); ?>


on document ready call content
                        <?php echo $this->getChildHtml('content'); ?>



                    </div>
                    <div class="col-left sidebar grid_4"><?php echo $this->getChildHtml('left'); ?></div>
                </div>
            </div>
            <?php echo $this->getChildHtml('footer'); ?>
            <?php echo $this->getChildHtml('before_body_end'); ?>
        </div>

任何幫助表示贊賞!

我認為這是一種語言混亂。 PHP是一種服務器端語言。 到原始源代碼觸摸您的瀏覽器時,它已經運行並完成。 另一方面,JavaScript是在瀏覽器中進行客戶端解析和渲染的。

如果需要在頁面加載后運行PHP腳本,則需要使用AJAX。 您將必須執行以下操作:

$(window).load(function () {
    $.ajax({
        url: "some-php-script.php",
        data: { ... } // data to send to php if applicable,
        ... // other options that may be needed
        success: function (res) {
            ... // handle successful return of data (if applicable)
        }
        error: function (res) {
            ... // handle error if appropriate
        }
    });
});

參考: .ajax()

編輯:

由user3553931建議

由於您要等待所有樣式表,腳本和圖像加載,因此我更新了答案以使用load事件而不是DOMContentLoaded$(document).ready背后的事件)。

根據下面的MDN文檔,看來load事件比DOMContentLoaded事件更能滿足您的問題要求。

參考: DOMContentLoaded

摘抄:

當文檔已完全加載和解析時,將觸發DOMContentLoaded事件,而無需等待樣式表,圖像和子幀完成加載(可以使用load事件來檢測完全加載的頁面)。

您必須通過ajax執行此操作。 在您的document.ready運行時,PHP已經不復存在了。 PHP在服務器端執行,而JS在客戶端執行。 嘗試做這樣的事情:

<script>
(function($) {
    $.ajax({
        type: "POST",
        url: 'index.php',
        data: { }, //send data if needed
        success:function(){
            alert("Success!");
        }
    });
</script>

其中url是您的php腳本的路徑。 您甚至可以在該php文件中返回某些內容,並在ajax調用的成功處理程序中對其進行處理。

有關AJAX的更多信息,請參見: .ajax()

暫無
暫無

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

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