0

我正在尝试创建一个 if 块,该块根据屏幕宽度将 3 或 4 吐出到 $postno 变量中。3 或 4 意味着 $arg 变量创建 3 或 4 个帖子。

我已经尝试过了,但这显然是错误的,而且我不知道语法,因为我还是个新手。谁能帮忙解释一下?提前致谢。

$args = array(
    'posts_per_page'    => $postno,
);  

if($(window).width() >= 1024) {
$postno=4;

} 
else {
        $postno=3
    } 
4

1 回答 1

0

您将 PHP 和 jQuery 混淆在一起。PHP是服务器端语言,jQuery是浏览器端。PHP 无法判断访问者窗口的宽度,除非您使用 jQuery 通过 Ajax 等方式传递该值。

即使那样,如果您尝试使用 PHP 将块限制为 3 或 4,您将不会通过屏幕宽度,直到访问者加载文档之后。

您最好的选择是使用 jQuery 来检测屏幕宽度,就像您已经$(window).width()使用 CSS 来隐藏/显示正确数量的块一样。这可以通过溢出和/或显示无/块来实现。

例子:

var width = $(window).width();

if(width >= 1024) {
    $('.block-4').show();
} else if(width < 1024) {
    $('.block-4').hide();
}

然而,这是一个非常粗略的示例,只是为了向您解释它的逻辑,并且可能不适用于您的环境。

编辑:

这是您尝试使用 PHP 和 jQuery 实现的工作示例。

您将需要两个文件:

索引.php:

$(document).ready(function() {
    var width = $(window).width();

    $.post("blocks.php", { width: width }).done(function(data) {
        $('.content').html(data); 
    });
});

块.php

<?php
    $width = $_POST['width'];
    if($width >= 1024) {
        echo '4';
    } else {
        echo '3';
    }
?>

所以这将把用户的屏幕宽度发布到一个名为 blocks.php 的 PHP 文件中,然后这个 PHP 文件将根据屏幕大小返回 4 或 3,然后使用 jQuery 它将更新一个名为“内容”与 4 或 3。

于 2013-10-22T15:02:59.540 回答