【问题标题】:Set php session variable by clicking clicking div通过单击 div 设置 php 会话变量
【发布时间】:2014-02-03 04:07:09
【问题描述】:

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

我是 ajax 新手,在完成这个任务时遇到了很多麻烦。这是我目前拥有的:

游戏列表.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['game'] 转换为空字符串,而不是在单击 div 时将其设置为等于 $_SESSION['game2']。我非常感谢任何帮助修复我的代码。

非常感谢

【问题讨论】:

  • $_SESSION['game2'] 定义在哪里?
  • 之前在 listofgames.php 中定义。为简洁起见,我省略了那部分
  • 样本值是多少?
  • 这将是一个简单的字符串。例如,“NFL-NYGDAL”

标签: php ajax session session-variables


【解决方案1】:

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

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

【讨论】:

  • 嗨,乔希,我尝试按照您的描述使用 $.get() 但不知何故,它似​​乎仍然没有执行 setsession.php 代码。任何想法可能是什么问题。感谢您的帮助
【解决方案2】:

尝试同步进行 ajax 调用,但在包含它时使用 jquery:

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

看看它是否改变了什么。

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

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

【讨论】:

  • 不幸的是,这并没有改变任何东西。我很困惑为什么它不起作用。 setsessiongame.php 代码似乎根本没有执行。感谢您的帮助
  • 你试过直接调用 setsessiongame.php?q=something 来测试吗?我的意思是这听起来很傻,但要测试和调试一切都必须尝试!
猜你喜欢
  • 2011-12-07
  • 2023-04-10
  • 1970-01-01
  • 2013-09-06
  • 2012-12-14
  • 1970-01-01
  • 2012-02-06
  • 2018-06-16
  • 2014-12-11
相关资源
最近更新 更多