【问题标题】:jQuery Syntax with if block带有 if 块的 jQuery 语法
【发布时间】:2013-10-22 14:54:38
【问题描述】:

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

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

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

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

} 
else {
        $postno=3
    } 

【问题讨论】:

  • 您将 PHP 和 jQuery 混淆在一起。 PHP是服务器端语言,jQuery是浏览器端。 PHP 无法判断访问者窗口的宽度,除非您使用 jQuery 通过 Ajax 等传递该值。
  • 你到底想在这里做什么? $(window).width() 不是 PHP。
  • 我同意@Karl,无论如何你的代码对我来说毫无意义。
  • @Mike Jackson 提出正确的问题。你到底想做什么?
  • 我确实说过我是新手!如果屏幕宽度超过 1024,我正在尝试获取值“3”,否则我希望该值为 4。然后我想将该值插入 $args PHP 变量我的代码显然是垃圾并且没有工作这就是为什么我在这里征求意见

标签: php if-statement syntax


【解决方案1】:

您将 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 实现的工作示例。

您将需要两个文件:

index.php:

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

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

blocks.php

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

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

【讨论】:

  • 我宁愿不使用 CSS。正如我认为可以通过'posts_per_page' => '',参数更改帖子的显示方式来完成其他方式。因此,如果屏幕宽度超过 1024,我希望我的 if 块吐出值“3”,否则我希望它是“4”。我知道这可能是一个简单的问题,但我是 jQuery 新手。正如你可能知道的那样!
  • 嗯,可以的。但是 PHP 要么需要 A) 吐出所有块,然后使用 jQuery 更改可见的块,要么 B) 不吐出任何块,然后您可以对准备好的 PHP 文件进行 Ajax 调用,以便通过宽度并接收正确数量的块,然后将页面更新为回调。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-15
  • 1970-01-01
  • 2021-12-20
  • 2020-08-09
  • 2013-09-13
  • 1970-01-01
相关资源
最近更新 更多