我正在尝试建立一个系统,如果用户点击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']。我真的很感激任何修复我的代码的帮助。
非常感谢
答案 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) {
}
});
)
并查看它是否有所改变。
也许可能是整个查询字符串没有正确传递。
请注意,这只是一个测试,可以尝试了解出现问题的地方,因为您的代码格式正确。