包含php的js函数在未调用时执行

时间:2013-10-08 00:55:41

标签: java php

我的页面标记中包含以下代码:

<script>
    function LogInOut()
    {
        // Get the current login status
        alert("executing LogInOut");
        $loginStatus = "<?php echo $_SESSION['login']; ?>";
        if ($loginStatus == "true")
        {
            <?php
                echo "<br />script function";
                $_SESSION['login'] = "false";
                session_destroy();
            ?>
            document.getElementById("loginState").innerHTML = "login";
        }
        else
        {
            window.location = 'login.php';
        }
    }

</script>

我发现页面加载时会执行php代码。函数(用于调试)从未被调用,但PHP代码执行,而其余的脚本都没有执行!任何人都可以澄清为什么会发生这种情况吗?

谢谢你, 希蒙

2 个答案:

答案 0 :(得分:1)

将Javascript(客户端语言)与PHP(服务器端语言)混合的经典案例。它们在两个不同的位置运行,据说这是不可能的。

PHP在javascript之前运行,如果您尝试将其与javascript混合,请使用它来回显动态数据。例如:

var logged_in = <?=($_SESSION['login'] ? 'true' : 'false')?> ;

Javascript在浏览器中运行,在PHP之后,不要使用PHP代码,认为它会在浏览器内部运行

答案 1 :(得分:0)

你需要一些东西来调用这个功能 在您的情况下,请在页面准备就绪时调用它。

$(document).ready(function(){
     LogInOut();
});

使用适用于现代浏览器的控制台:

LogInOut();