2011-01-20 25 views
1

我試圖通過下拉框更改選項時更新/創建會話變量。 T值存儲在一個javascript函數中。任何1都可以告訴我如何在不使用AJAX請求的情況下將此變量傳遞給我的PHP會話變量。 謝謝將JavaScript變量傳遞給PHP Session變量

+0

我只會在這個問題上施放9級jquery,個人。 – goat 2011-01-20 06:09:01

回答

3

沒有ajax?好吧,

var img = new Image(); 
img.src = "script.php?myVal=" + encodeURIComponent(theValueToPass); 

瀏覽器會嘗試通過請求url加載圖片。顯然這將是一個愚蠢的差事,但你的PHP腳本將得到執行,並在PHP的價值可用$_GET['myVal']

+0

很好的解決方法。 – 2011-01-20 09:19:31

0

你真的不能。

會話數據隨服務器而改變,而Javascript只能改變客戶端數據(如cookie)。 但是,您可以通過創建一個新的PHP頁面來創建解決方案,該頁面在GET/POST請求中傳遞變量,然後更改會話。

0

我能想到的唯一選擇就是使用javascript在URL中設置一個參數,以後您可以使用PHP來解釋這個參數,但那會在另一個頁面加載後進行。

http://www.mine.com/index.html?paramter=variable&anotherparam=anothervariable 

看到this post的方法來實現這一目標

編輯:我不認爲這會achive你的第二個想法後,但我會離開這個答案只是套內

+0

thnx很多4你的答案。但與URL dere是一個問題。實際上,當我從我的下拉框中選擇選項時,URL不會更新,因爲整個頁面正在使用多個AJAX請求,並且未選擇刷新頁面,URL不會更新。我認爲我唯一的選擇是AJAX請求。 – Himanshu 2011-01-20 06:00:27

0

PHP會話變量駐留在服務器上:

http://www.w3schools.com/PHP/php_sessions.asp

但JavaScript的值僅客戶端。

如果不使用ajax,應該有一種機制將其發送到服務器:嘗試將此值保存到隱藏字段中,然後使用通常的get/post發送它。

2

嗯,我認爲,你可以通過在你的javascript中添加一個cookie值,然後在下一頁的引用中使用php更新你的會話,並參考這個cookie值。

我還沒有嘗試過,我不認爲有辦法從javascript客戶端更新會話。

謝謝