【问题标题】:setting array session value inside jquery在jQuery中设置数组会话值
【发布时间】:2011-05-05 23:24:53
【问题描述】:

我正在尝试在 jquery 中设置会话数组,我在 javascript 函数内部调用该数组,该函数称为链接的 onClick 事件。

但它一直在设置我最后一次点击的选择。

这是我用于设置会话数组的代码(我想在每次有人点击链接时向会话数组添加新元素):

$_SESSION['Ticket'][]=$IDGame;

【问题讨论】:

  • 您了解在服务器端运行的脚本和在客户端运行的脚本之间的区别吗?此外,你从哪里得到$IDGame?它是使用查询参数发送到服务器的吗?你检查它的有效性吗?
  • 请提供您要检索值的部分的代码 sn-p。

标签: php jquery session


【解决方案1】:

您正在混淆服务器端语言和客户端语言。如果你想在你的 $_SESSION 变量(服务器端)中添加一些东西,你需要在 javascript(客户端)中创建一个 ajax request 到服务器。

【讨论】:

  • @Marcel Korpel 确实如此,对于普通链接也是如此,但 我在 javascript 函数内部调用的 jquery 中设置会话数组 似乎意味着停留在同一页面上,但我可能是错的......
  • 是的,但在我看来,他更像是不明白服务器和客户端脚本之间的区别。
  • 我已经在使用 jquery 发出 ajax 请求。我只需要将元素添加到 php 会话数组变量中。我不知道该怎么做
  • @jeroen 我停留在同一页面(没有重新加载页面)
  • @bob0800 这也是我的假设。你能提供更多代码,你用ajax调用的页面的javascript和完整的php吗?
【解决方案2】:

我认为这就是你的意思....

$.isArray($_SESSION['Ticket']) ? $_SESSION['Ticket'].push($IDGame) : $_SESSION['Ticket'] = [$IDGame];

【讨论】:

  • PHP中有$.isArray这样的函数吗?
  • 我不使用 PHP,这个问题在 JQuery 中说,所以我在 JQuery 可用的地方尝试了一个 javascript 答案。我认为 $_Session 是 PHP 的东西?
  • 读取其他人的cmets。我的“答案”假设这一切都在 javascript 中,并且您有自己的关联数组,称为 $_SESSION。据我所知,他们是对的,您正在混合您的 PHP 和 javascript 代码。哦,PENDO 并不是说​​您必须使用隐藏字段,只是他的示例使用 id = IDGame 组成,仅用于说明目的。您可以使用 jQuery.data,或者 shudders 制作一个名为 IDGame 的全局变量或其他任何东西。隐藏的输入不是 cookie 插件的重点。
【解决方案3】:

您不能在 jQuery 中使用 PHP 代码(至少在这种情况下不能)。有一个基于给定参数的 jQuery 插件 (http://plugins.jquery.com/files/jquery.cookie.js.txt),您可以为当前用户设置 cookie 或会话。例如:

$('#element').click(function(e) {
  e.preventDefault();
  $.cookie('Ticket[]', $('#IDGame').val();
});

此代码假定 $IDGame 存储在 ID = IDGame 的(隐藏)文本字段中。这是将 jQuery 与会话和 cookie 一起使用的正确方法。如果您想单独使用 PHP 代码,则应考虑使用 getJSON 函数加载 PHP 文件并将 ID 作为参数发送到文件并在后台向会话添加新密钥。

【讨论】:

  • 我不想使用隐藏字段,因为我想使用会话变量
  • 参见上面的 Felix 回复。隐藏字段只是为了向 jQuery 提供值。我认为正确的答案已经在这里给出了几次,你应该没问题。你应该添加更多代码让我们看看问题到底出在哪里。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-20
  • 1970-01-01
  • 1970-01-01
  • 2013-06-27
  • 1970-01-01
  • 2014-04-03
  • 1970-01-01
相关资源
最近更新 更多