簡體   English   中英

'如果'條件為真但'else'被執行

[英]'if 'condition is true but 'else' is executed

我對這段代碼有問題:

        <?php $nb = 10; ?>
    <script>
        if(window.innerHeight+1 == screen.height) 
        {
            document.write("<?php $nb = 10; ?>");
            alert("1");
            alert(window.innerHeight +1+ " " +screen.height+ " 1");
        }else{
            document.write("<?php $nb = 8; ?>");
            alert("2");
            alert(window.innerHeight +1+ " " +screen.height + " 2");
        }
   <script>
           <?php

        $blink = "";
        $i = 0;
        for($i=0;$i<$nb;$i++)
        {
            if($_SESSION['Collection'][$i]->getUrgence() == "FORTE")
            {
            $blink = " class=\"Blink\"";
            }
        elseif($_SESSION['Collection'][$i]->getUrgence() == "MOYENNE")
        {
            $blink = "";
        }

        echo '<tr>';
        echo    '<td'.$blink.'>'.$_SESSION['Collection'][$i]->getNumDossier().'</td>';
        echo    '<td'.$blink.'>'.$_SESSION['Collection'][$i]->getNomTicket().'</td>';
        echo    '<td'.$blink.'>'.$_SESSION['Collection'][$i]->getService().'</td>';
        echo    '<td'.$blink.'>'.$_SESSION['Collection'][$i]->getImpact().'</td>';
        echo    '<td'.$blink.'>'.$_SESSION['Collection'][$i]->getUrgence().'</td>';
        echo    '<td'.$blink.'>'.$_SESSION['Collection'][$i]->getDateOuverture().'</td>';
        echo '</tr>';
        }
    ?>

事實上,我想檢測瀏覽器是否全屏,如果是,我把我的變量設置為 10,否則我把它設置為 8。在我的 php 代碼中使用這個變量來顯示一些值之后。

'if' 為真,alert("1") 被打印,但是 $nb =8,這真的是一件很奇怪的事情,不是嗎?

感謝您的閱讀!

我認為你有兩個相互競爭的想法。 正如@Titus 在他的評論中所說,首先編譯所有 PHP 代碼。 所以 $nb 首先設置為 10,然后設置為 8。

生成 HTML 輸出后,$nb 在 HTML 中使用它的任何地方都是 8。 您需要在 PHP 中使用 if/else 或使用單獨的變量。

    <?php $nb = 10; ?>
<script>
    if(window.innerHeight+1 == screen.height) 
    {
        document.write("8");
        alert("1");
        alert(window.innerHeight +1+ " " +screen.height+ " 1");
    }else{
        document.write("8");
        alert("2");
        alert(window.innerHeight +1+ " " +screen.height + " 2");
    }

您應該進入您的開發人員工具並檢查 HTML 以查看在客戶端生成了哪些值。 PHP = 服務器端代碼,JS = 客戶端代碼(因為您沒有使用節點)。

您對該代碼段的意圖尚不清楚,因此我無法為您提供可行的示例。

暫無
暫無

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

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