将$ _GET值传递给使用jquery加载的网页

时间:2014-03-17 20:00:11

标签: javascript php jquery ajax variables

我有一个页面可以加载邮件系统的邮件。此页面使用AJAX每秒加载external_content(另一页)。会话ID存储在URL中,因此我将其转移到external_content中的方法非常基础:

$got = $_GET['conversation_id'];
$_SESSION['id'] = $got;

然而,有一个问题。当在某人的帐户上同时打开多个会话时,每次重置另一个会话时(会话变量被重置),所以我需要防止这种情况发生。

因此,我不知何故需要将此GET变量传递到另一个我不能简单地使用$ _GET ['conversation_id']的页面,但我需要以某种方式进行,以便可以多次设置变量。 External_content显示在div中,所以我不确定是否将它与$ _POST一起传递。

大n00bie。请帮忙。

3 个答案:

答案 0 :(得分:2)

您是说您需要在Ajax请求中传递会话ID吗?为此,请将其作为页眉中的变量添加到script元素中。

<script>
var g_conversationID = "<?php echo $_GET['conversation_id']; ?>";
</script>

然后在你的请求中传递它:

$.get("mypage.php", {"conversation_id": g_conversationID}, function(data) {
    // Handle content
});

您可以使用JavaScript从URL中解析它,但这种方法通常更容易。

答案 1 :(得分:1)

我假设在脚本中发送ajax请求正在寻找$ _SESSION ['id']?当你打开多个标签时,问题出在那里,他们都在看同一个变量。

因此,每当您发送该ajax请求时,请附上conversation_id

$.get( "YOURSCRIPT.php", {
    convo_id: "<?= $_GET['conversation_id']; ?>",
});

然后在YOURSCRIPT.php中,你可以获取$ _GET ['convo_id']

而不是抓住$ _SESSION ['id']

修改

@Dr。麦凯的方式和我刚才所说的一样。对不起,我错过了那个。

答案 2 :(得分:0)

当您的用户在当前页面上关注textarea时,您可以触发onfocus事件以进行ajax调用,以设置Session superglobal作为当前会话ID。