2009-10-07 40 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在每次請求當時)...