在PHP中,会话变量不存储该值。怎么了?

时间:2015-12-12 15:15:52

标签: php jquery html

以下是PHP代码示例。我期待会话变量' t'调用更新函数时增加其值。但是,当我运行代码时,我不断将输出作为值:1。我该怎么做才能将值存储到会话变量中?

<?php
session_start();    
if(!isset($_SESSION['t'])) {
    $_SESSION['t'] = 0;
}
?>
<div id="test" class="test"></div>

<script src="http://code.jquery.com/jquery.js"></script>

<script>
    function update() {

        var ct = "<?php echo $_SESSION['t'] += 1 ?>";

        <?php echo "Value: " . $_SESSION['t']; ?>;

        $("#test").html(ct);
    }

    $(document).ready(function() {
       setInterval('update()', 1000);
    });
</script>

1 个答案:

答案 0 :(得分:0)

在任何输出

之前,将session_start()放在脚本的最顶部
<?php
    session_start();

    // if you automatically set SESSION['t'] to 0 when the page loads, it will never increment
    // check if the SESSION exists, and if it doesn't, then we create it
    if(!isset($_SESSION['t'])) {
        $_SESSION['t'] = 0;
    }
?>


<div id="test" class="test"></div>

<!-- it's recommended to load scripts at the end of the page -->
<script src="http://code.jquery.com/jquery.js"></script>

<script>
    function update() {
        // you had some formatting issues in here...

        // shortcut: using +=1 will take the current value of $_SESSION['t'] and add 1
        var ct = "<?php echo $_SESSION['t'] += 1 ?>";

        <?php echo "Value: " . $_SESSION['t']; ?>;

        $("#test").html(ct);
    }

    $(document).ready(function() {
       setInterval('update()', 1000);
    });
</script>

更新: 这是一个我认为你正在寻找的例子。它将在加载页面时显示$_SESSION['t']的值,然后在每次单击更新按钮时递增$_SESSION['t']的值。没有错误检查,这只是一个非常简单的例子,向您展示它是如何工作的。

<?php
    session_start();

    if(!isset($_SESSION['t'])) {
        $_SESSION['t'] = 0;
    }
?>


<div id="test" class="test"></div>

<button type="button" id="update">Update</button>


<script src="http://code.jquery.com/jquery.js"></script>

<script>
    $(document).ready(function() {

        // create the ct varaible
        var ct = <?php echo $_SESSION['t']; ?>;

        // display the value in the #test div
        $("#test").text(ct);

        // when the update button is clicked, we call ajax.php
        $("#update").click(function(){
            $.post("ajax.php", function(response){

                // display the returned value from ajax.php
                $("#test").text(response);
            });
        });

    });
</script>

<强> ajax.php

<?php

session_start();

// increment the session by 1
$_SESSION['t'] += 1;

// return the result
echo $_SESSION['t'];