2009-10-07 39 views
2

对此的最佳方法是什么?jQuery单击事件来更改php会话变量

因为,正如我发现的(并且它完全合理,只有在尝试过之后:p),您才能在javascript条件下设置PHP变量。 (duurrhh)

唯一的解决办法我能想出是做一个AJAX调用来处理该会话变量

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

然后让session.php处理设置新的变量一个小的PHP文件。

但八九不离十感觉就像一个垃圾做一个完整的HTTP请求,只设置一个变量在PHP ...

回答

7

的Javascript (jQuery的)在客户端执行。

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

因此,要做任何与PHP会话相关的事情,你必须去服务器,做一个完整的HTTP请求 - 你不能留在客户端。

做一个Ajax请求是要到服务器的方式 - 正常工作;-)
你在做什么是OK (和必要的,实际上),如果你想影响一些会话数据:您没有多少选择,即使感觉像是某种浪费。

+0

这就是我担心。不过,这真的不是一件麻烦事,所以我猜这样会好的... – peirix 2009-10-07 11:22:14

3

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

或者,也许你可以设置使用JavaScript cookie和更改会话当一个请求出现在(你会检查这个cookie在每次请求当时)...