2014-01-14 59 views
1

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

我是新来的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; 
?> 

此代码已被打开$ _SESSION [ '游戏']到一个空字符串,而不是设置它等于$ _SESSION ['game2']当div被点击时。我真的很感激修复我的代码的任何帮助。

非常感谢

+0

其中是$ _SESSION ['game2']定义? –

+0

它在前面的listofgames.php中定义。为了简洁,我忽略了这部分 – user3195732

+0

什么是样本值? –

回答

0

既然你已经被引用了jQuery,您可以使用$.get()

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

嗨乔希,我试着用你所描述的$ .get(),但不知怎的,它似乎仍然没有执行setsession.php代码。任何想法可能是什么问题。感谢您的帮助 – user3195732

0

尝试做同步,但使用jQuery Ajax调用因为你是它包括:

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

,看看它是否改变了一些东西。

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

请注意,这只是一个测试,试图了解问题出在哪里,因为您的代码似乎格式正确。

+0

这并没有改变任何不幸的事情。我很困惑,为什么它不工作。 setsessiongame.php代码似乎根本没有执行。感谢您的帮助 – user3195732

+0

您是否尝试过调用setsessiongame.php?q =直接测试它?我的意思是这听起来很愚蠢,但测试和调试一切都必须尝试! –