我有一些隐含的PHP函数可以在特定的前端事件上调用;例如button
onclick
s。通过这样做,这应该相应地修改我的PHP SESSION
变量。但是,即使我只是想要执行第一个函数,这两个函数setAlan()
和setMark()
似乎也会被调用。
<?php
session_start();
function setAlan() {
$_SESSION['passed_user']='alan';
}
function setMark() {
$_SESSION['passed_user']='mark';
}
?>
<script>
function getAlan() { $(document.body).append('<?php setAlan(); ?>'); }
function getMark() { $(document.body).append('<?php setMark(); ?>'); }
function show() { alert(' <?php echo "{$_SESSION['passed_user']}" ?> '); }
</script>
<div class="pod">
<div class="pod_title"><h2>Select a User</h2></div>
<div>
<input type="button" onclick="getAlan();" value="alan">
<input type="button" onclick="getMark();" value="mark">
<input type="button" onclick="show();" value="show">
</div>
</div>
我不明白为什么setMark()
会被自动调用?通过我所写的内容,我相信我只是定义PHP函数,而不是调用它们;我使用JS。我错过了什么吗?提前谢谢!
答案 0 :(得分:1)
首先执行PHP,服务器端。 PHP完成后,您的浏览器(客户端)将获得结果,Javascript在客户端上执行,因此在完成PHP之后。
您不能像以前那样混合使用javascript和PHP:
<script>
function getAlan() { $(document.body).append('<?php setAlan(); ?>'); }
function getMark() { $(document.body).append('<?php setMark(); ?>'); }
function show() { alert(' <?php echo "{$_SESSION['passed_user']}" ?> '); }
</script>
但是,您可以使用Javascript通过ajax(异步JavaScript和XML)调用某些服务器端PHP脚本。