使用JavaScript修改PHP会话变量

时间:2014-07-22 08:45:14

标签: javascript php session-variables

我有一些隐含的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。我错过了什么吗?提前谢谢!

1 个答案:

答案 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脚本。

http://www.w3schools.com/ajax/default.ASP