2013-08-30 35 views
1

語言:PHP & Javascript
我在維護一個網站,其中我有兩個CSS,一個用於屏幕寬度小於1024,另一個用於屏幕寬度大於1024.我使用通過在Javascript中檢查屏幕寬度來匹配CSS,如下所示。我可以將JavaScript條件的結果導入到PHP變量中嗎?

VAR一個= screen.width;
如果(screen.width < 1024)
的document.getElementById( 'CS')= 'one.css';其他
document.getElementById('cs')='two.css';

現在我想要這個條件的結果存儲到PHP中的會話變量。我怎樣才能實現這一點,這真的有可能嗎?有人請幫助我。

謝謝。

+2

我會建議你也考慮使用CSS媒體查詢來代替你的Javascript。 –

+0

如果您的目的是調整屏幕大小,您可以使用CSS媒體查詢。 –

+0

爲什麼在'session'中需要此信息? –

回答

2

否JavaScript是客戶端語言,PHP是服務器端語言。在你的JavaScript被解析的時候,PHP已經走了。

+0

我們有另一種方法,那就是AJAX – Dgo

+1

雖然這個問題的上下文是一個有爭議的問題,但是:「我可以將JavaScript條件的結果導入到PHP變量嗎?」 –

2

是的。您可以使用數據進行ajax調用並設置會話變量。我希望你瞭解ajax。

0

第一件事:你不需要php爲你的任務。它可以使用普通的javascript來完成。

只要給它一個簡單的檢查:在可變CSS

var parameter_one = "http: //stackoverflow.com/one.css"; //your absolute path 
var parameter_two = "http: //stackoverflow.com/two.css" 

if (screen.width < 1024) { 
    load_me(parameter_one) 
} else { 
    load_me(parameter_two) 
} 

function load_me(file) { 
    var head = document.getElementsByTagName('head')[0]; 
    var link = document.createElement('link'); 
    link.rel = 'stylesheet'; 
    link.type = 'text/css'; 
    link.href = file; 
    link.media = 'all'; 
    head.appendChild(link); 
} 
+0

我認爲這已經完成了。無論如何,你的答案是缺少的,你使用'$'作爲'document'的快捷方式和url的引號。 –

0

第一店css文件名。

if(screen.width<1024){ 
     document.getElementById('cs').value ='one.css'; 
     var css = "one.css"; 
    }else{ 
     document.getElementById('cs').value ='two.css'; 
     var css = "two.css"; 
    } 

之後,你可以通過三種方式做到這一點:

1)通過Ajax請求發送CSS值服務器並將其設置會話。

2)保存在sessionStorage的CSS的價值,但它僅適用於HTML5

sessionStarage.setItem("css", css); 

您可以通過

sessionStorage.getItem("css"); 

3訪問頁面的這個值的onload)中的cookie保存CSS值在JavaScript

當你發送請求到服務器
document.cookie = "css="+css+";"; 

餅乾被髮送到服務器。你可以在會話變量中設置它。

$_SERVER["css"] = $_COOKIE["css"]; 

我認爲這將是有效的方法。

+0

如果我能夠將它存儲在cookie值中,那麼我將使用它!非常感謝。 –

相關問題