Сетка 360 - Завершить строку с нечетным количеством записей - PullRequest
0 голосов
/ 28 марта 2011

Я пытаюсь сделать это с помощью системы координат 360: http://imgur.com/4ZFll

Из базы данных я получаю продукты, которые будут отображаться в строках по 4 на каждом.

Работает отлично, если в каждой категории ровно 4 товара, но если в категории менее 4 товаров, дизайн испорчен, потому что div не закрыт должным образом. Проблема в том, что иногда на линии не более 3 товаров.

Кто-нибудь из вас знает, как этого добиться?

for($i=0 ; $i<$countprod ; $i++){

    $prevprod = $products[$i-1]['name'];
    $curprod = $products[$i]['name'];
    if($curprod != $prevprod){
        echo '<div class="grid_12 alpha omega"><h2>'.$products[$i]['catname'].'</h2></div>';
    }


    if ($i == 0){ echo '<div class="grid_3 '; }
        if ($i % 4 == 0) { echo ' alpha">'; }
        elseif($i % 4 == 3) { echo '</div><div class="grid_3 omega">'; }
        else{ echo '</div><div class="grid_3">';
    }

        echo $product[$i]['image'];

    if ($i % 4 == 3) {
        echo '</div><div class="clear"></div>';
        echo '<div class="grid_3';
    }

}

(извините за заголовок, я не знал, как назвать этот вопрос :))

Ответы [ 3 ]

1 голос
/ 28 марта 2011
echo '<div class="grid_3';

Вы не закрываете этот тег.

0 голосов
/ 28 марта 2011

Попробуйте с

$countprod = count($product);
$prevprod = '';
$close_div = false;
for ($i=0; $i<$countprod; $i++){

    $curprod = $products[$i]['name'];
    if($curprod != $prevprod){
        if ($close_div) echo '</div>';
        echo '<div class="grid_12 alpha omega"><h2>'.$products[$i]['catname'].'</h2></div>';
    }

    if ($i % 4 == 0) { 
        echo '<div class="grid_3 alpha">';
        $close_div = true;
    }
    elseif ($i % 4 == 3) {
        echo '</div><div class="grid_3 omega">';
        $close_div = true;
    }
    else { 
        echo '</div><div class="grid_3">';
        $close_div = true;
    }

    echo $product[$i]['image'];

    if ($i % 4 == 3) {
        echo '</div><div class="clear"></div>';
        $close_div = false;
    }
    $prevprod = $curprod;
}
0 голосов
/ 28 марта 2011
$p = 10; // Current number of products

$ppr = 4; // Products per row
$x = $i % $ppr;

if($x != 0){
    $countprod = $p + ($ppr - $x);
}

echo $countprod; // 12 (4 * 3)

Цикл с FOR, если товара нет, просто напечатайте пустой DIV, если вы об этом спросили ...

...