2013-10-22 18 views
0

我試圖創建一個if塊,吐出基於屏幕寬度的3或4到$ postno變量。 3或4表示$ arg變量創建3或4個帖子。jQuery語法與if塊

我試過這個,但它顯然是錯誤的,我不知道語法,因爲我仍然有點新手。任何人都可以解釋這個嗎?提前致謝。

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

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

} 
else { 
     $postno=3 
    } 
+4

您將PHP和jQuery混淆在一起。 PHP是服務器端語言,jQuery是瀏覽器端。除非使用jQuery通過使用Ajax傳遞該值,否則PHP無法知道訪問者窗口的寬度。 – Karl

+0

您在此嘗試做什麼? '$(window).width()'不是PHP。 –

+0

我同意@Karl,無論如何你的代碼對我來說沒有任何意義。 –

回答

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什麼工作的例子。

你將需要兩個文件:

的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,它將更新4或3類名爲「content」的類的內容。

+0

我寧可不使用CSS。正如我認爲可以通過其他方式完成,只需通過'posts_per_page'=>''參數顯示帖子的顯示方式。所以如果屏幕寬度超過1024,我想讓我的if塊吐出值「3」,否則我希望它是「4」。我明白這可能是一個簡單的問題,但我是jQuery的新手。正如你可以告訴! – KingLouie

+0

嗯,是的,它可以做到。但是,PHP將需要A)將所有塊全部吐出,然後使用jQuery更改哪些塊是可見的)或者B)不吐出任何東西,然後您可以對準備好PHP文件的文檔執行Ajax調用,以便通過寬度並接收正確數量的塊,然後將該頁面更新爲回調。 – Karl