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

最好的办法是什么?

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

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

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

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

但是,只有在PHP中设置一个变量才能完成一个完整的http请求。

Javascript (jQuery)在客户端执行。

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

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

做一个Ajax请求是一种去服务器的方式 – 工作正常;-)
如果您想影响一些会话数据,那么您正在做的事情是确定的(实际上必要的) :您没有太多选择,即使它感觉像某种浪费。

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

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