Toon posts:

Vast aantal elementen binnen table row

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

In een dynamisch productenoverzicht wil ik dat er bijvoorbeeld steeds 5 <td>'s per <tr> zijn. Zijn er bijvoorbeeld 12 producten, dan zijn er dus 3 table rows.

Ik ben nou al een tijdje hiernaar op zoek, en dit is wat ik heb; het werkt echter niet.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php 
   function tekenGalerij($breedte, $elementen){ 
      echo("<tr>"); 
      for($i = 0; $i <= $elementen; $i++){ 
         if(($elementen % $lengte) == 0){ 
            echo("</tr>"); 
            $einde_rij = 1; 
         } 
         else{ 
            if($einde_rij == 1){ 
               echo("<tr>"); 
               echo("<td>" . $i . "</td>"); 
               $einde_rij = 0; 
            } 
            else{ 
               echo("<td>" . $i . "</td>"); 
            } 
         } 
      } 
   } 
?> 
<table border="1"> 
   <?php tekenGalerij(5, 12); ?> 
</table>



Verder zitten er ook heel wat 'designfouten' in; wat is de goede manier om zoiets aan te pakken?

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Gebruik sowieso [php]-tags. Inhoudelijk:

- Waar komt $lengte vandaan?
- Je gebruikt $i=0; $i<=$elementen, zodat je uiteindelijk $elementen+1 keer de lus doorloopt
- Als $elementen precies deelbaar is door $lengte, krijg je alleen maar </tr> geecho'd

Onderstaand heb ik iets gemaakt waarvan ik denk dat hij beter doet wat jij wilt. Voor elke $i wordt een <td> aangemaakt, en aan het eind van de regel wordt er een nieuwe <tr> begonnen. Merk op dat eerst de td wordt geecho'd, en daarna pas een </tr><tr> volgt wanneer $i precies deelbaar is door $breedte.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php 
function tekenGalerij($breedte, $elementen){
  echo '<tr>';
  for($i=1; $i <= $elementen; $i++) {
    echo '<td>'.$i.'</td>';
    if($i % $breedte == 0) {
      echo '</tr><tr>';
    }
  }
  echo '</tr>';
} 
?> 
<table border="1"> 
   <?php tekenGalerij(5, 12); ?> 
</table>