簡體   English   中英

從 JavaScript 到 PHP 的數據傳輸

[英]Data transfer from JavaScript to PHP

如何將瀏覽器的高度和寬度設置為 PHP? 像從 JavaScript 到 PHP 的數據傳輸? 我認為使用innerHeightInnerWidth

(我只需要向用戶顯示小圖片,如果他的屏幕尺寸小,如果大則大,如果沒有關於屏幕尺寸的數據,我做不到)

我有這樣的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<link rel="stylesheet" href="css/slideshow.css" type="text/css" /> 

<script> 
  document.write('script.php?screen=' + screen.width + 'x' + screen.height'); 
</script> 

</head> 
<body> 

  <?php $lol=$_GET['screen']; 
  <?php echo "SIZE : $lol" ?> 

</body> 
</html> 

它不起作用。 我究竟做錯了什么?

您必須從 JavaScript 對 PHP 腳本進行 AJAX 調用。 該 PHP 腳本將保存當前會話中的屏幕分辨率(為此您需要使用會話)。 稍后請求的 PHP 腳本可以訪問 JavaScript 代碼段傳遞的屏幕分辨率。

如果您不知道 AJAX,那么您可以使用鏈接通過 GET 方法將信息發送到服務器。

<script language="javascript">
   function load(){
      document.getElementById('myAnchor').href="test2.php?sw="+screen.width+"&sh="+screen.height;
   }
</script>
<body onload="load();">
<a id="myAnchor" href="#">Send to server</a>
<?php
if (isset($_GET)){
    print_r($_GET);
}
?> 
</body>

或者您也可以使用表單向服務器發送信息。

這是一個不使用任何庫的簡單 ajax 對象。

http://www.pagecolumn.com/javascript/ajax_object.htm

在客戶端,像這樣使用它,

function foo() {
    var screen=' + screen.width + 'x' + screen.height'; 
    ajax.getRequest("test_get.php",["screen"], [screen],function(data){
       alert(data);
    });
}

在 PHP 中,

<?php $lol=$_GET['screen']; 
 echo "SIZE : $lol"; 
?>

PHP 在您的Web 服務器上運行。
PHP 處理器輸出 HTML,該 HTML 被傳輸到客戶端瀏覽器
- 至此 PHP完成 不能做任何其他事情
瀏覽器現在解釋 HTML 頁面並在客戶端機器上執行 javascript。

Javascript無法將值傳遞給 PHP,因為

  • PHP 在服務器上,而 javascript 在客戶端
  • 到 javascript開始運行時,PHP 已完成運行

正如其他人所提到的,此時您可以做的最好的事情是將高度/寬度信息傳遞回服務器以供稍后使用,或者進行 AJAX 調用以根據大小信息動態更新頁面。

您可以獲得屏幕分辨率,但使用 JavaScript 而不是PHP。 PHP 是服務器端的。 但是,您可以使用 ajax 或任何其他方法讓 JavaScript 將值傳遞給 PHP。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM