jQuery单击事件来更改php会话变量

时间:2009-10-07 10:36:31

标签: php jquery

最好的方法是什么?

因为,正如我发现的那样(并且它完全有道理,只有在尝试过之后:p)你不能在javascripts条件下设置PHP变量。 (duurrhh)

我能想到的唯一解决方案是对处理会话变量的小型PHP文件进行AJAX调用

elm.click(function() {
   $.post("session.php", { "hints":"off" });
   turnOffHints();
}

然后让session.php处理设置新变量。

但是,仅仅为了在PHP中设置一个变量来完成一个完整的http请求就感觉很浪费......

2 个答案:

答案 0 :(得分:7)

Javascript (jQuery)在客户端执行。

PHP及其会话机制,在服务器端执行。

因此,要执行与PHP会话相关的任何事情,您必须转到服务器,执行完整的HTTP请求 - 您不能留在客户端。

执行Ajax请求是一种进入服务器的方式 - 工作正常;-)
你正在做的是(和必要的,实际的),如果你想影响一些会话数据:你没有太多的选择,即使它感觉像某种废物。

答案 1 :(得分:3)

唯一的另一种选择是提出“常规请求”,但这会更加“浪费”。

或许您可以使用JavaScript设置cookie并在下一个请求进入时更改会话(您必须在每个请求时检查此cookie)...