2014-10-01 37 views
0

我試圖獲得瀏覽器的寬度,然後將它作爲一個PHP變量進行比較,但它將它保存爲一個字符串,我試着解析它到另一個變量,但它只返回0。保存jscript整數作爲一個PHP整數

$tam='<script>var j= $(window).width(); document.write(j)</script>'; 

我做的分析是這樣的:

$ntam=(int) $tam; 
+3

行您是否知道PHP代碼在服務器上執行,而JavaScript是在客戶端(瀏覽器)上執行的東西嗎? 在這裏,PHP中的$ tam將始終是一個字符串。沒有更多,沒有更多。 – laruiss 2014-10-01 17:58:25

+0

所以沒有辦法解析變量? – 2014-10-01 18:06:01

回答

-1

你的腳本需要返回的寬度和它需要的功能

 <script> 
     var tam= function() 
      { 
       var j= $(window).width(); 
       document.write(j) 
       return $(window).width(); 
      } 
     var ntam = tam; 
     </script> 
+0

抱歉所有的編輯。我一直丟失的東西 – 2014-10-01 17:58:28

+0

即使忽略php是服務器端和js客戶端的問題,你的代碼也不會使敏感。 – 2014-10-01 18:05:19

+0

好的,是的,我修改了代碼,使它看起來像一個函數,事情是,ntam應該是一個php int變量,它是否可行? – 2014-10-01 18:05:30

0

您無法直接將javascript值保存到php變量中。但你可以......將php值放入一個javascript變量中,並使用它來使用javascript進行更改。

<?php echo '<script type="text/javascript">var jVar = "$phpVar";'; ?> 

如果您要從js文件導入您的腳本,您需要在導入或課程之前添加此腳本。

而且我不知道你想什麼來完成,但如果你需要一個js值可以隨時發送郵件使用Ajax請求該值...

var ajax = new XMLHttpRequest(); 
var form = new FormData(); 
form.append('win_size',window.innerWidth); 
ajax.open("http://example.com/processJSWindowSize.php","POST",true); 
ajax.send(form); 

在服務器端的代碼,在這個例子中processJSWindowSize.php,你可以沿着

<?php 
    if($_SERVER['REQUEST_METHOD'] == 'POST'){ 
     $jsWindowSize = strip_tags(stripslashes($_POST['win_size'])); 
     //do what you need with the window size 

    } 
?>