2013-04-25 80 views
0

大家好我有一個大問題試圖解決這個問題。我知道我必須使用JavaScript,但我無法理解如何使用JavaScript。這是我的腳本:如何獲得屏幕分辨率並將其放入PHP變量

<?php 
$posts = query_posts('order=DESC&cat=-2'); 
$cols = 4; 
$filas = array_chunk($posts, $cols); 
$columnas = array(); 
foreach($filas as $row => $articulos) { 
foreach($articulos as $ix => $articulo) { 
    $columnas[$ix] = isset($columnas[$ix]) ? $columnas[$ix] : array(); 
    $columnas[$ix][] = $articulo; 
} 
} 
?> 
<?php foreach($columnas as $posts):?> etc, etc ... <?php endforeach; ?> 

其中$ cols值將根據用戶的窗口屏幕而改變。 I.E. =如果窗口屏幕是(某些值),然後$ cols =(某個值)

我真的很感謝這方面的幫助。

乾杯!

+0

那麼,使用一些Javascript來獲得解決方案,然後通過AJAX或作爲GET請求發送到PHP腳本,將它存儲在會話變量中。只有事後才能在腳本中使用它。 – mario 2013-04-25 18:49:03

+0

我建議通過JS設置一個cookie,然後在PHP中獲取該cookie的值。只需通過JS將cookie設置爲儘可能接近HTML文檔的頂部,如果您使用的是字符集聲明,我會將它放在緊跟在字符集聲明之後。 – Jasper 2013-04-25 18:59:49

+0

我可能也建議使用CSS。媒體查詢對此非常重要,但您也可以將元素浮動以支持舊瀏覽器。' – Jasper 2013-04-25 19:05:35

回答

0

你可以做一些事情,比如使用頁面上的ajax腳本onload。這會讓你的網站速度較慢,但​​它應該有正確的效果:

HTML

<div class="container"> 
    <!-- Place columns here --> 
</div> 

jQuery的

$(document).load(function(){ 
    var winWidth = $(window).width(); 
    $.post('phpscript', {width: winWidth}, function(data) { 
     $('.container').html(data); 
    }); 
}); 

PHP

<?PHP 
    //Your PHP script to format your page in however many columns 
    //Have your script here take the width of your page 
    //Do do math to find how many columns 
    //Query whatever you need to get those columns 
    //Return the HTML 
?> 

這將允許你返回任何你想要的列布局。儘管如此,我確信用一些好的CSS來製作所需的列數會更容易。

+0

通過'這會讓你的網站變慢'你的意思是創建一個AJAX請求會明顯減慢網站的渲染速度?如果是這樣,我懷疑它會很明顯。但是,如果你正在考慮AJAX請求的滯後性,那麼你是對的,用戶的延遲將在這裏發揮重要作用。良好的CSS調用,這是在這裏使用的正確技術。 – Jasper 2013-04-25 19:03:55

+0

是的,我的意思是AJAX請求將滯後取決於用戶延遲。尤其取決於您從數據庫中提取多少個對象。謝謝! – ntgCleaner 2013-04-25 19:27:13