360 grille - terminer la ligne avec nombre impair d'enregistrements
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 :))
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é ...