PHP变量基于设备宽度而变化

时间:2013-09-17 15:19:22

标签: javascript php jquery ajax

我想要做的是让我的网站获得访问者获得的窗口的当前宽度。然后我想要两个不同的选项。像这样:

<script>
if (screen.width < 768) {
<?php $a = 1; ?>
} else {
<?php $a = 2; ?>
}
</script>

我想要做的是我的php变量应该根据设备宽度而改变。

这是最简单的方法吗?我无法编写或理解单行AJAX,所以如果这是我对某种指南非常满意的唯一方法,以使其尽可能简单。

用css制作它不是正确的方法。所以,请不要告诉我一些与css有关的事情。

编辑:

我不确定你们是否理解我真正希望从这段代码中得到什么。

所以我会更具体地写出来。

我有一个网站顶部有一个图片滑块,显示了2条最新消息。在这之下,我有一个查询设置为偏移2的帖子,因为我不想查询我在滑块中的相同新闻。

所以我的代码是这样的:

<?php 
$offset = 2;
$showposts = 10; 
?>

    <?php query_posts(array('offset' => $offset, 'showposts' => $showposts,'cat' => '8')); ?>

我无法进行两个不同的查询,因为我的广告脚本无法加载超过1次,因为它们根本不会显示。所以这一切都需要在一个查询中完成,这就是必须根据设备宽度进行更改的原因。

现在我忘了告诉我的版本宽度&lt; 768我让我的滑块消失,因此我想将偏移量设为0而不是2.

我希望这更有意义......

3 个答案:

答案 0 :(得分:1)

您可以使用cookie在JS和PHP之间进行通信。

这是设置或更新cookie的JS:

document.cookie = "someKey=someVal; path=/;";

然后您可以使用$_COOKIE["someKey"]访问PHP中的数据。

有些PHP脚本尝试从用户代理检测设备类型,这是我在此cookie不可用时使用的(首页加载)。因此,我可以在页面加载之前根据智能猜测更改我的UI。

答案 1 :(得分:1)

您必须使用AJAX的简单方法。然后,您将能够向服务器发出请求并执行某个脚本。

$.post("http://yoursite.com/script.json",  { windowsWidth:  screen.width });

您可以在变量上接收窗口宽度,然后在脚本中执行任何操作。

答案 2 :(得分:-1)

尝试这样的事情:

var w = $(document).width(); // if you are using jquery
var v;
if (w < 768)
    v = <?php echo $var;?>;
else
    v = <?php echo $var2;?>;