单击div设置php会话变量

时间:2014-01-14 21:49:46

标签: php ajax session session-variables

我正在尝试建立一个系统,如果用户点击div,则应将php会话变量设置为另一个会话变量的值,该变量已在之前定义过。例如,如果用户点击id =“game2”的div,则应将$ _SESSION ['game']设置为等于已定义的$ _SESSION ['game2']。

我是ajax的新手,并且在完成此任务时遇到了很多麻烦。这是我现在拥有的:

listofgames.php:

<?php session_start(); ?>    

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
    function setSessionGame(str){
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET", "setsessiongame.php?q="+str,true);
        xmlhttp.send();
    }
</script>
</head>
<body>
    <?php echo "<a href=\"#\" onclick = \"setSessionGame(". $_SESSION['game2'] .")\">" ?>
    <div id = "game2"></div>
    </a>
</body>
</html>

setsessiongame.php:

<?php
session_start();
$q = $_GET['q'];
$_SESSION['game'] = $q;
?>

当点击div时,此代码已将$ _SESSION ['game']转换为空字符串,而不是将其设置为$ _SESSION ['game2']。我真的很感激任何修复我的代码的帮助。

非常感谢

2 个答案:

答案 0 :(得分:0)

由于您已经引用了jQuery,因此可以使用$.get()

function setSessionGame(str){
    $.get("setsessiongame.php?q="+str, function(data) {
        // ajax complete
    });
}

答案 1 :(得分:0)

尝试将ajax调用同步,但使用jquery包含它:

function setSessionGame(str){
    $.ajax({
        type: "GET",
        url: "setsessiongame.php",
        async: false,
        data:  {
            "q" : str   
        },
        success: function(msg) {
        }
    });
)

并查看它是否有所改变。

也许可能是整个查询字符串没有正确传递。

请注意,这只是一个测试,可以尝试了解出现问题的地方,因为您的代码格式正确。

相关问题