Automatisch nieuwe lijn aan de hand van inhoud tabel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan R

Jan R

20/08/2013 09:21:01
Quote Anchor link
Hoi,

Stel ik heb een tabel met 5 kolommen.

Elke keer de inhoud wijzigd van de cel in kolom 1 moet ik een extra nieuwe lijn hebben.
Kan dit?

Hier een voorbeeld met 2 kolommen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
1000|jfdkjfs
1000|fdsetre

2000|gfgreg

3000|gryt uyuy
3000|iopoipu
3000|pubngk


Het moet met zuiver html en inline css gebeuren.
Het resultaat komt uit een rapport welke uitsluitend met tekst werkt en javascript is niet altijd geactiveerd.

Jan.
Gewijzigd op 20/08/2013 10:31:02 door Jan R
 
PHP hulp

PHP hulp

20/12/2024 08:40:58
 
Eddy E

Eddy E

20/08/2013 09:32:55
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
table tr td:first-child
{
border-right: 1px solid #000;
}


Wat je bedoelt met de foutieve zin: "Elke keer de inhoud wijzigd van kolom 1 moet ik een extra nieue lijn hebben." is mij geheel onduidelijk.
 
Ward van der Put
Moderator

Ward van der Put

20/08/2013 09:45:15
Quote Anchor link
Sla de laatst getoonde waarde op in een controlevariabele. Toon daarna een extra regel als de huidige waarde afwijkt van de controlevariabele en stel de controlevariabele in op de nieuwe waarde.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
// Tabel opbouwen met foreach of while
while (...) {
    echo '<tr>';  // Plus andere HTML per rij

    if ($huidige_waarde_eerste_kolom != $controlevariabele) {
        echo '-- Wat extra HTML voor een lege regel --';
        $controlevariabele = $huidige_waarde_eerste_kolom;
    }


    echo '</tr>';
}

?>
 
Eddy E

Eddy E

20/08/2013 10:09:19
Quote Anchor link
Defineer dan wel voor je while() even $controlevariable, anders krijg je eenmalig een notice dat die variabele niet bestaat.
 
Ward van der Put
Moderator

Ward van der Put

20/08/2013 10:11:59
Quote Anchor link
Eddy E op 20/08/2013 10:09:19:
Defineer dan wel voor je while() even $controlevariable, anders krijg je eenmalig een notice dat die variabele niet bestaat.
Inderdaad, of doe dat in de while() als je niet zeker weet wat de eerste waarde zal worden.
 
Eddy E

Eddy E

20/08/2013 10:28:53
Quote Anchor link
Zal sowieso niet leeg zijn ;)

Ik gebruik het zelf ook op www.zunflappie.nl om die tussenheaders (met die rondjes) te maken.
In jouw geval (door Ward snap ik nu wat je bedoeld):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
$vorige
= false;

while(...)
 {

 // hier al je dingen om $kolom1 etc te maken
 $kolom1 = intval($row['kolom_dinges']);

 echo '    <tr>
        <td>'
.$kolom1.'</td>
        <td>'
.$kolom2.'</td>
        <td>'
.$kolom3.'</td>
        <td>'
.$kolom4.'</td>
        <td>'
.$kolom5.'</td>
    </tr>'
;
 
 if($vorige != $kolom1)
     {

    echo '    <tr>
            <
td colspan="5"></td>
        <
/tr>
    }
 }
// einde while-loop
?>


Let op dat dit voorbeeldcode is en niet zomaar erin geplakt kan worden.
 
Jan R

Jan R

20/08/2013 10:31:54
Quote Anchor link
Eddy E op 20/08/2013 09:32:55:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
table tr td:first-child
{
border-right: 1px solid #000;
}


Wat je bedoelt met de foutieve zin: "Elke keer de inhoud wijzigd van kolom 1 moet ik een extra nieue lijn hebben." is mij geheel onduidelijk.


Wel elke keer als ik een andere waarde heb in de eerste cel van de eerste kolom, de andere kolommen doen er niet toe, wil ik een extra lege lijn, een <br> als het ware.
in jouw code is de eerste lijn een andere opmaak.

Ward van der Put op 20/08/2013 09:45:15:
Sla de laatst getoonde waarde op in een controlevariabele. Toon daarna een extra regel als de huidige waarde afwijkt van de controlevariabele en stel de controlevariabele in op de nieuwe waarde.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
// Tabel opbouwen met foreach of while
while (...) {
    echo '<tr>';  // Plus andere HTML per rij

    if ($huidige_waarde_eerste_kolom != $controlevariabele) {
        echo '-- Wat extra HTML voor een lege regel --';
        $controlevariabele = $huidige_waarde_eerste_kolom;
    }


    echo '</tr>';
}

?>


Quote:
Het resultaat komt uit een rapport welke uitsluitend met tekst werkt


Dus geen php sorry



Toch al allemaal bedankt om mee te denken.
Gewijzigd op 20/08/2013 10:35:29 door Jan R
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.