0

PHP 脚本是否可以传递 Javascript 收集的值?

我只是在想如果 Javacript 可以捕获用户的屏幕分辨率,我可以使用该值来运行 PHP(IF 和 Else 函数)来加载某个 php 文件吗?

要有明确的解释,

  1. Javascript 将检测用户的屏幕分辨率。
  2. 确定屏幕分辨率后,PHP 脚本将加载正确的 php 文件。
  • 如果屏幕分辨率大于 1200,则显示 PHP 文件编号 1
  • 如果屏幕分辨率大于 1920,则显示 PHP 文件号 2
  • 如果屏幕分辨率小于 1200 = 显示 PHP 文件号 3

顺便说一句,我忘了提到 PHP 文件只是网页的一小部分。让我们假设 php 文件是一个标头。PHP 文件#1、#2 和#3 具有不同的设计和内部的谷歌广告。

PHP #1 & #2 有一个 728px 宽度的 google adsense 广告,而 PHP #3 有一个 300px 宽度的 google adsense 广告

那可能吗?非常感激你的帮助。非常感谢!:)

4

6 回答 6

1

您可以通过 2 种方式执行此操作:

  • 通过javascript,根据结果决定要加载的文件
  • 将结果发送到 PHP(GET 或 POST)并让它决定做什么(AJAX 或重定向)

无论如何,PHP并不是真正需要的

于 2013-03-19T15:34:35.210 回答
1

您不必为此使用 PHP。

也许是这样的?:

if ((screen.width>=1024) && (screen.height>=768))
{
 window.location="highres.html";
}
else
{
  window.location="lowres.html";
}

如果你必须使用 PHP,你可以做一个简单的 Ajax 调用。

于 2013-03-19T15:32:56.863 回答
1

当然有可能。首先加载包含获取分辨率的脚本的页面,然后使用 POST 或 GET 发送值,然后返回所需的内容。

我建议使用一些 ajax,否则如果页面加载两次,可能会给用户带来困扰。

于 2013-03-19T15:34:04.310 回答
0

我猜你想放置这个逻辑的不只是一页。这是我要做的:

  1. 检查 $_SESSION['screen-res'] 中是否提供屏幕分辨率。如果没有,则将浏览器重定向到“check-screen-res.php”。这个 PHP 文件应该有相关的 javascript 代码来检测屏幕分辨率,然后使用变量“screen-res”将其存储在会话中。

  2. 如果您的会话中有屏幕分辨率,那么您就可以开始了。只需使用它来包含您想要的任何 PHP 文件。

当然,如果用户在访问您的站点期间更改了分辨率,则此策略将不起作用。如果检测到屏幕分辨率更改,您可能可以通过引发适当的事件来解决这个问题;如果是这样,请相应地更新您的会话变量,等等。

希望这可以帮助。让我知道这是否是您要遵循的策略,我很乐意使用一些 php/javascript 代码更新此线程。

于 2013-03-19T17:43:01.800 回答
0

其他答案集中在 AJAX 上 - 为了一些 adsense 广告 - 虽然更干净,但可能比真正需要的解决方案更复杂 - 为了完整起见,有一个便宜且简单的替代方案:将所有内容转储到页面首先,然后决定如何处理它。

例如。在您的 HTML 中:

<div id="ADgt1200" style="display:none;">
  <!-- adsense code-->
</div>
<div id="ADgt1920" style="display:none;">
  <!-- adsense code-->
</div>
<div id="ADlt1200" style="display:none;">
  <!-- adsense code-->
</div>

然后在你的 Javascript 中:

//pseudo
if(whatever.width > 1200)
  document.getElementById('ADgt1200').style.display = 'block';
else { /* etc... */ }

回应您的评论:

这只是一个原始示例,根据相同的原则,没有理由不能将 AdSense 代码存储在 javascript 变量中......

<script>
    var myAdsense = [
      'gt1200': '<adsense/>',
      'gt1920': '<code/>',
      'lt1200': '<block/>'
    ];

    window.onload = function(){
      if(whatever.width > 1200)
        document.getElementById('myEl').innerHTML = myAdsense['gt1200'];
      // etc.
    };
</script>
<div id="myEl"></div>

...因此,除非您这么说,否则实际上没有代码被加载到 DOM 中。

于 2013-03-19T15:56:42.837 回答
0

您可以使用 JQuery 脚本加载页面并让 PHP 返回正确的 html 文件。然后你调用这样的东西:

$.post("page.php", {sel:"cond1", dpiy: dpi_y, dpix: dpi_x}, function(j)
{
    //load form
    $("#ext_page").html(j);
});
于 2013-03-19T15:35:36.117 回答