Question

J'essaie d'accomplir cela, avec le système de 360 grille: http://imgur.com/4zfll

Dans une base de données, je reçois des produits qui seront affichés dans des lignes avec 4 sur chacun.

Cela fonctionne parfaitement s'il y a exactement 4 produits sous chaque catégorie, mais s'il y a moins de 4 produits dans une catégorie, la conception est gâchée, car la Div n'est pas fermée correctement. Problème est que parfois il n'y a que 3 produits ou moins sur une ligne.

Y a-t-il un de vous qui sait comment accomplir cela?

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';
    }

}

(désolé du titre, je ne savais pas quoi appeler cette question :))

Était-ce utile?

La solution

essayer avec

$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;
}

Autres conseils

echo '<div class="grid_3';

Vous ne fermez pas cette balise.

$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)

boucle avec pour s'il n'y a pas de produit, imprimez simplement vide DIV, si c'est ce que vous avez demandé ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top