2014-05-10 137 views
1

這是非常基本的。我想要做的就是測量瀏覽器窗口的html寬度,並將這些數據傳遞給PHP腳本,以便我可以調整傳遞給站點的信息。如何使用POST方法將javascript/jQuery變量傳遞給PHP

我已經得到了HTML寬度部分。我只是無法使用AJAX將Javascript/jQuery變量傳遞給PHP腳本。

這裏是Javascript/jQuery。它是用PHP編寫的,因此我可以稍後使用include()函數。

echo 
'<script> 
    htmlWidth = $("html").width(); 
    $.ajax({ 
     type: "POST", 
     url: "mobileView.php", 
     data:{ width: htmlWidth } 
    }) 
</script>'; 

而這裏的PHP:

$width = $_POST['width']; 
function mobileView(){ 
    if ($width < 950){ 
     return true; 
    } else{ 
     return false; 
    } 
} 
mobileView(); 
+0

如果你只是想確定是否使用的移動網站或沒有,你可以使用一個預先製作的檢測腳本這可以在網絡上找到。 – ArtOfCode

+0

@martynas這不是重複的。我查了一下這篇文章,但無法找到這個問題的答案。 –

+0

@CaolanEvans我創建的網站對某些div有特定的尺寸,而不是創建多個CSS文件,我寧願創建兩個:一個用於網站的完整版本,另一個用於,不僅僅當有人在查看網站時在移動設備上,而且如果窗口的大小小於950px,比如有人在windows和linux中將選項卡固定到屏幕的左側或右側時。 –

回答

7

這裏是代碼,可以是文件中的功能:

對於PHP的一部分,你應該通過價值的功能和調用函數。

我想你需要返回數據給客戶端從PHP函數返回。 然後,對於ajax部分,您必須捕獲返回數據。

<? 
if(isset($_POST['width'])){ 
    $width = $_POST['width']; 

    function mobileView($width){ 
     if ($width < 950){ 
      echo 'true'; 
     } else{ 
      echo 'false'; 
     } 
    } 
    mobileView($width); 

}else{ 
?> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
<script> 
    htmlWidth = $("html").width(); 
    $.ajax({ 
     type: "POST", 
     url: "mobileView.php", 
     data:{ width: htmlWidth }, 
     success: function(data){ 
      console.log(data); 
     } 
    }) 
</script> 

<? 
}; 

?> 
+0

謝謝。這工作完美。現在這可能是一個愚蠢的問題,但爲什麼「回聲」打印到控制檯而不是HTML?我想要做的是根據從ajax傳遞的信息將數據打印到html文件。 –

+0

這段代碼不會讓我在php中使用include函數,它只是將所有的數據返回到控制檯。 –

+0

@Solomon Arnett你是什麼意思包括功能在PHP?一個文件包含這個或這個文件包含另一個? –

2

試試這個。

你的AJAX

htmlWidth = $("html").width(); 
$.ajax({ 
    type: "POST", 
    url: "mobileView.php", 
    data:{ width: htmlWidth, somevar : "yes" }, 
    success: function(data){ 
     console.log(data); 
    } 
}) 

你的PHP

if(isset($_REQUEST['somevar'])){ 
    $width = $_POST['width']; 

    function mobileView($width){ 
     if ($width < 950){ 
      echo 'true'; 
     } else{ 
      echo 'false'; 
     } 
    } 
    mobileView($width); 
} 
+0

謝謝你,你的回答對我的問題真的很有幫助 – Melvin