如何在同一页面的php会话中获取jquery值

时间:2014-05-03 14:11:24

标签: php jquery count

我正在尝试在同一页面上获取php会话中的每个jquery计数值,但我失败了,请指导我该怎么做。

这是我的代码

<script type="text/javascript" src="jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var counter = (function() {
    var count = 0;
    return function() {
        count++;
        return count;
    };
})();

$('#button').click(function() {
    $('#counter').text(counter());
    Counter=$("#counter").val();
});

});
</script>

<input type="button" id="button" value="Click me!" />
<div id="counter">0</div>

<?php
echo $_SESSION['Counter'];
?>

提前致谢

2 个答案:

答案 0 :(得分:2)

您需要为此进行AJAX调用。考虑这个例子:

首先绑定按钮进行ajax调用,每次单击,请求服务器开始增量。

<input type="button" id="button" value="Click me!" />
<div id="counter"><?php echo (isset($_SESSION['counter'])) ? $_SESSION['counter'] : 0; ?></div>

<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $('#button').on('click', function(){
        $.ajax({
            url: 'index.php',
            data: {counter: true},
            type: 'POST',
            dataType: 'JSON',
            success: function(response) {
                $('#counter').text(response);
            }
        });
    });
});
</script>

然后服务器将计数器设置为会话。

<?php

// initial setting
if(!isset($_SESSION['counter'])) {
    $_SESSION['counter'] = 0;
}

// for every click increment the counter
if(isset($_POST['counter'])) {
    $_SESSION['counter']++;
    echo json_encode($_SESSION['counter']);
    exit;
}

?>

答案 1 :(得分:1)

您无法直接将JavaScript变量分配给php,因为PHP is server side scripting lagaugeJavaScript client side。您必须使用Ajax向计算机发送计数器并将其保存到会话中,作为响应,您将获得存储的会话值。