【问题标题】:Data transfer from JavaScript to PHP从 JavaScript 到 PHP 的数据传输
【发布时间】:2011-03-05 14:36:15
【问题描述】:

如何将浏览器的高度和宽度转换为 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> 

而且它不起作用。我做错了什么?

【问题讨论】:

    标签: php javascript html


    【解决方案1】:

    您必须从 JavaScript 到 PHP 脚本进行 AJAX 调用。该 PHP 脚本将在当前会话中保存屏幕分辨率(您需要为此使用会话)。稍后请求的 PHP 脚本可以访问由 JavaScript sn-p 传递的屏幕分辨率。

    【讨论】:

    • 我的 AJAX 太差了。只需使用 javascript 和 php 即可完成。当他们在同一页面上时。
    • @Trava 不,没有 Ajax 就无法完成,抱歉。 Javascript 在 PHP 生成页面后运行,并且没有机会将任何内容传递回 PHP。这就是 Ajax 存在的原因。
    • @Trava 查看 jQuery 的 Ajax 示例:api.jquery.com/jQuery.ajax 很容易上手,只需几行代码。
    【解决方案2】:

    如果您不了解 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>
    

    或者您也可以使用表单将信息发送到服务器。

    【讨论】:

      【解决方案3】:

      这是一个不使用任何库的简单 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"; 
      ?>
      

      【讨论】:

        【解决方案4】:

        PHP 在您的网络服务器上运行。
        PHP 处理器输出 HTML,然后传输到客户端浏览器
        -- 至此 PHP 完成。它不能做任何其他事情
        浏览器现在解释 HTML 页面并执行 javascript - 在客户端机器上

        Javascript不能将值传递给 PHP,因为

        • PHP 位于 服务器 而 javascript 位于 客户端
        • 在 javascript 开始运行时,PHP 已完成运行

        正如其他人所提到的,此时您可以做的最好的事情是将高度/宽度信息传递回服务器以供以后使用进行 AJAX 调用以动态更新页面尺寸信息。

        【讨论】:

          【解决方案5】:

          您可以获得屏幕分辨率,但使用 JavaScript NOT PHP。 PHP是服务器端的。但是,您可以使用 ajax 或任何其他方法让 JavaScript 将值传递给 PHP。

          【讨论】:

          • 好的,我需要从 javascript 到 php 的数据传输)
          猜你喜欢
          • 1970-01-01
          • 2021-08-09
          • 2012-07-29
          • 2020-06-03
          • 2016-05-29
          • 1970-01-01
          • 2012-11-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多