tabel output loop: 2 rijen op 1 regel
Maar ik wil graag 2 rijen per regel.
Code (php)
1
<tr><td>$row['foto']</td><td>$row['naam']</td><td>$row['foto']</td><td>$row['naam']</td> </tr>
Nou heb ik wat gegoogled maar het gaat mijn pet te boven. Ik denk dat ik iets moet doen met de oneven links en de even numrows rechts. Alleen hoe doe je dat? Ik heb wat lopen prutten maar ik kom er niet uit...Kan iemand me op weg helpen?
http://www.w3schools.com/html/tryit.asp?filename=tryhtml_table_colspan
http://www.w3schools.com/html/tryit.asp?filename=tryhtml_table_rowspan
Ik weet niet helemaal of je dit bedoelde, maar hopelijk helpt het je een beetje op weg :)
Gewijzigd op 26/12/2016 12:21:33 door Mitch PHP
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>float test</title>
<style type="text/css">
.foto-container { width: 300px; } /* een veelvoud van de breedte van de .foto class */
.foto { width: 100px; height: 50px; display: block; float: left; text-align: center; line-height: 50px; }
.even { background-color: #ffcccc; }
.oneven { background-color: #ccccff; }
</style>
</head>
<body>
<div class="foto-container">
<?php
// dummy resultaten
$results = 10;
// dummy loop
for ($i=0; $i < $results; $i++) {
$class = ($i % 2 ? 'oneven' : 'even');
?><div class="foto <?php echo $class ?>">foto <?php echo $i ?></div><?php
}
?>
</div>
</body>
</html>
<html>
<head>
<meta charset="UTF-8">
<title>float test</title>
<style type="text/css">
.foto-container { width: 300px; } /* een veelvoud van de breedte van de .foto class */
.foto { width: 100px; height: 50px; display: block; float: left; text-align: center; line-height: 50px; }
.even { background-color: #ffcccc; }
.oneven { background-color: #ccccff; }
</style>
</head>
<body>
<div class="foto-container">
<?php
// dummy resultaten
$results = 10;
// dummy loop
for ($i=0; $i < $results; $i++) {
$class = ($i % 2 ? 'oneven' : 'even');
?><div class="foto <?php echo $class ?>">foto <?php echo $i ?></div><?php
}
?>
</div>
</body>
</html>
Het enige wat je hoeft te veranderen wanneer je een ander aantal foto's per regel wilt is de breedte van de container.
Afhankelijk van de data die je wilt weergeven kan het soms ook handiger zijn om een echte tabel te bouwen maar ik denk dat je in dit geval, voor de weergave van foto's, wel uit de voeten kunt met een container met gefloate divjes.
Kan ik er op een of andere manier een lege <td> aan de loop vastplakken bij een oneven aantal?
Nu is het perfect, dank!
Die code sluit alleen een rij alsnog af, maar voegt geen dummy-cellen toe als het aantal resultaten geen veelvoud is van het aantal items per rij, wat tot gevolg heeft dat dit syntactisch incorrecte tabellen oplevert? Volgens mij heb ik dat al eens aangehaald, maar die code is nog (steeds) niet aangepast.
Thomas van den Heuvel op 14/01/2017 23:09:19:
Die code sluit alleen een rij alsnog af, maar voegt geen dummy-cellen toe als het aantal resultaten geen veelvoud is van het aantal items per rij, wat tot gevolg heeft dat dit syntactisch incorrecte tabellen oplevert? Volgens mij heb ik dat al eens aangehaald, maar die code is nog (steeds) niet aangepast.
Script is nu aangepast.
Over dat script heb ik maar 1 opmerking: waarom noem je je variabele $dummy en niet $i zoals conventioneel gebruikt wordt? $dummy voelt als een nutteloze variabele terwijl hij dat echt niet is.
Komt eigenlijk doordat Thomas het over dummy-cellen had.
Vind het verder niet echt interessant.
$i is ook prima.
Agreed, maar $dummy voelt ontzettend vreemd, misschien zou in dat geval iets als $dummy_count of $dummy_cellcount beschrijvender zijn. We hebben het hier over beginners, en zij moeten het script kunnen begrijpen, toch?
Wat jij wil... heb er $dummy_count van gemaakt.
Is niet bedoeld om te zeuren, maar gewoon om te zorgen dat er begreoen wordt wat je in het script aan het doen bent.
Voor de laatste cellen kun je ook het volgende doen (alternatief):
Code (php)
Er is iets voor te zeggen om lege cellen te voorzien van een spatie (non breaking space) zodat deze niet echt leeg zijn. Daarnaast zou ik persoonlijk het echo'en van HTML vermijden.
@Ben heeft ergens een (goed) punt. Naamgeving (van o.a. variabelen) is belangrijk. Ik zou $columns gebruiken in plaats van $naast_elkaar, en $j in plaats van $dummy_whatever. Variabelen met "dummy" erin hebben doorgaans geen betekenis, maar worden gebruikt als placeholders die verder niet gebruikt worden. $dummy_count wordt wel degelijk gebruikt om bij te houden of de foreach-lus klaar is, dus in dat opzicht is de naam niet echt handig gekozen.
Gewijzigd op 15/01/2017 16:52:03 door Thomas van den Heuvel