2010-09-30 13 views
0

Comment ne pas afficher un séparateur ou une bordure après les dernières données de la liste?Comment ne pas afficher un séparateur ou une bordure après les dernières données de la liste?

J'ai une liste de données qui est codée sous forme de <ul> et <li>

et il est mis en forme de la manière qu'après enregistrer chaque frontière ou séparateur doit être affiché, mais après le dernier record cette frontière devrait ne pas être affiché. Je suis conscient du fait qu'il doit être codé avec l'aide de for boucle, mais je ne peux pas attraper la logique pour cela.

Je travaille en PHP et les données sont extraites de Mysql DB

ci-dessous est le format des données à afficher et en elle, le dernier <li> est pour l'affichage séparateur

MISE À JOUR

for ($i=0, $n=sizeof($order->products); $i<$n; $i++) 
{ 
    <ul> 
     <li class="col1"><?php echo $order->products[$i]['qty']; ?></li> 
         <li class="col2"><?php echo $product_image; ?></li> 
         <li class="col3"><?php echo $product_name; ?></li> 
         <li class="col4"><?php echo $currencies->display_price($finalprice, $order->products[$i]['tax'], $order->products[$i]['qty']); ?></li> 

         <li class="dotted-border"></li> 
    </ul> 
} 
+0

Veuillez montrer votre code de boucle. – BoltClock

+0

@ BoltClock est un Pls Unicorn voir la mise à jour Question –

Répondre

2

À moins que je mal compris:

if($i<$n-1) echo"<li class="dotted-border"></li>";

+0

EUREKA EUREKAAAAAA ;-) Merci Mannn !!!! Cela a fonctionné ...... –

0

a) soit emballer toutes les chaînes dans un tableau et implode('<.. border ..>', $array) les

b) if ($numberOfCurrentItem < count($order->products)) { displayBorder(); }

2

Vous avez un élément de la liste vide qui est là pour rien, mais une frontière. Débarrassez-vous de cela. Ce que vous devriez faire est de mettre une bordure en haut de chaque <ul> sauf le premier, et vous pouvez le faire en CSS seul (sans avoir à vous soucier de mettre la présentation dans votre balisage). Cela dit, une structure plus appropriée pour ce que vous faites est une table plutôt qu'une liste. Vous n'avez pas besoin de l'afficher sous forme de tableau, mais c'est exactement ce que vous faites d'un point de vue sémantique.

+0

+1 pour CSS ..... –

1

Ce qui suit devrait fonctionner:

<?php for ($i=0, $n=sizeof($order->products); $i<$n; $i++): ?> 
    <ul> 
     <li class="col1"><?php echo $order->products[$i]['qty']; ?></li> 
     <li class="col2"><?php echo $product_image; ?></li> 
     <li class="col3"><?php echo $product_name; ?></li> 
     <li class="col4"><?php echo $currencies->display_price(
     $finalprice, $order->products[$i]['tax'], 
     $order->products[$i]['qty'] 
     ); ?></li> 
     <?php if($i == $n-1) ?> 
     <li class="dotted-border"></li> 
     <?php endif; ?> 
    </ul> 
<?php endfor; ?> 

Mais pourquoi ne pas vous ajouter la classe dotted-border au ul au lieu d'avoir un élément vide?

+0

U a fait une erreur copain je l'ai recorrigé par

+0

+1 J'apprécie que vous me donniez ce que je cherchais , Je vous remercie –