0

我的页面标签中有以下代码:

<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 代码执行,而脚本的其余部分均未执行!谁能澄清为什么会发生这种情况?

谢谢你,西蒙

4

2 回答 2

1

将 Javascript(一种客户端语言)与 PHP(一种服务器端语言)混合的经典案例。他们在两个不同的地点运行,据说这永远不可能。

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

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

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

于 2013-10-08T01:07:16.193 回答
0

您将需要一些东西来调用该函数在您的情况下,请在页面准备好时调用它。

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

或者使用现代浏览器的控制台输入:

LogInOut();
于 2013-10-08T01:28:51.707 回答