我的页面标记中包含以下代码:
<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代码执行,而其余的脚本都没有执行!任何人都可以澄清为什么会发生这种情况吗?
谢谢你, 希蒙答案 0 :(得分:1)
将Javascript(客户端语言)与PHP(服务器端语言)混合的经典案例。它们在两个不同的位置运行,据说这是不可能的。
PHP在javascript之前运行,如果您尝试将其与javascript混合,请使用它来回显动态数据。例如:
var logged_in = <?=($_SESSION['login'] ? 'true' : 'false')?> ;
Javascript在浏览器中运行,在PHP之后,不要使用PHP代码,认为它会在浏览器内部运行
答案 1 :(得分:0)
你需要一些东西来调用这个功能 在您的情况下,请在页面准备就绪时调用它。
$(document).ready(function(){
LogInOut();
});
使用适用于现代浏览器的控制台:
LogInOut();