Hide hr in while loop

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Danny von Gaal

Danny von Gaal

04/07/2016 11:57:12
Quote Anchor link
Is het mogelijk om tijdens een while loop bij de laatste gegevens die er op worden gehaald de <hr> te verbergen? Zo voorkom ik dat er een streepje bovenaan staat en alleen als afscheiding tussen de opgehaalde gegevens.
 
PHP hulp

PHP hulp

29/03/2024 07:59:15
 
Ward van der Put
Moderator

Ward van der Put

04/07/2016 12:06:03
Quote Anchor link
Ja, kijk wat voor string er uit de loop komt en knip de laatste <hr> eraf.

Dat kan op allerlei manieren, bijvoorbeeld door met strlen() naar de stringlengte te kijken en vervolgens met substr() de string 4 karakters korter te maken.
 
- Ariën  -
Beheerder

- Ariën -

04/07/2016 12:11:22
Quote Anchor link
Of in de iteratie bijhouden hoe vaak deze doorlopen is. Je moet wel van te voren weten hoe vaak die doorloopt.

Toevoeging op 04/07/2016 12:14:19:

- SanThe - op 04/07/2016 12:10:35:
..

Volgens mij hoeft een <hr> tag in HTML5 niet meer afgesloten te worden. In XHTML moest dat wel: <hr />

Maar ik pin me er niet op vast.
 
Bas hooff

bas hooff

04/07/2016 12:28:17
Quote Anchor link
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
// $sOphalen = je query

$iAantal = mysqli_num_rows($sOphalen);

$i = 1;
while ($aRijen = mysqli_fetch_array($sOphalen))
{
    // printen van je resultaten
                
    if ($i < $iAantal)
    {
        echo '<hr>';
    }    
    $i++;
}
Gewijzigd op 04/07/2016 12:31:06 door bas hooff
 
Thomas van den Heuvel

Thomas van den Heuvel

04/07/2016 13:55:09
Quote Anchor link
Of gewoon na het eerste record eerst een <hr /> weergeven.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$first
= true;
while ($row = $res->fetch_whatever()) {
    if ($first) {
        $first = false;
    }
else {
        ?>
<hr /><?php
    }
    // doe iets met $row
    // ...

}
?>
 
Bas hooff

bas hooff

04/07/2016 14:00:42
Quote Anchor link
Het verschil tussen de code van Thomas en die van mij is dat er onder het laatste resultaat ook geen HR wordt weergegeven toch ? (beetje gek om bij wijze van spreken tegen de footer nog een HR te plaatsen):

Code van mij:
res 1: hr, res 2: hr, laatste res: geen hr

code Thomas:
res 1: hr, res 2: hr, laatste res: hr

Ik weet niet welke van toepassing is maar volgens mij komt het wel goed.
 
Thomas van den Heuvel

Thomas van den Heuvel

04/07/2016 14:06:25
Quote Anchor link
In de uitvoering doet onze code hetzelfde. Het verschil is wanneer de <hr> wordt afgedrukt binnen de loop. In mijn geval gebeurt dat voordat record-data wordt getoond. Ook in mijn versie staat daarom geen <hr> aan het eind. Probeer het maar eens uit.

Vergelijk jouw code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
--- iteratie 1 ---
record 1
hr
--- iteratie 2 ---
record 2
hr
--- iteratie 3 ---
record 3


Met mijn code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
--- iteratie 1 ---
record 1
--- iteratie 2 ---
hr
record 2
--- iteratie 3 ---
hr
record 3
Gewijzigd op 04/07/2016 14:10:08 door Thomas van den Heuvel
 
Bas hooff

bas hooff

04/07/2016 14:11:24
Quote Anchor link
uhm idd <hr /> en daarna handel je $row af.
 
Ozzie PHP

Ozzie PHP

04/07/2016 14:13:09
Quote Anchor link
Misschien nog even interessant om te melden is dat een <hr> tegenwoordig (in HTML5) een semantische betekenis heeft. Vroeger was het enkel bedoeld als een visueel element (een streep), maar tegenwoordig niet meer. Met een <hr> kun je bijvoorbeeld een thematische verandering aangeven in een hoofdstuk van een boek.

In html krijgt <hr> geen eind slash. Het is dus <hr> en niet <hr />.
Gewijzigd op 04/07/2016 14:16:42 door Ozzie PHP
 
Bas hooff

bas hooff

04/07/2016 14:15:13
Quote Anchor link
is dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
HTML5: the ending slash '/' is optional.
HTML4: the slash is technically invalid. However, it's accepted by W3C's HTML validator.
XHTML: The slash is REQUIRED.


correct ?

EDIT: uiteraard van toepassing op self-closing: img, area, br, input etc
Gewijzigd op 04/07/2016 14:20:05 door bas hooff
 
Thomas van den Heuvel

Thomas van den Heuvel

04/07/2016 14:15:42
Quote Anchor link
Bij mijn meten mogen "self-closing tags" (zoals img, hr etc.) nog steeds optioneel een forward slash bevatten. Het is dus niet fout, het is enkel niet noodzakelijk.

En waarschijnlijk bedoelde je "semantisch"?
 
Ozzie PHP

Ozzie PHP

04/07/2016 14:22:23
Quote Anchor link
>> En waarschijnlijk bedoelde je "semantisch"?

yup ... corrected

>> Bij mijn meten mogen "self-closing tags" (zoals img, hr etc.) nog steeds optioneel een forward slash bevatten. Het is dus niet fout, het is enkel niet noodzakelijk.

Quote:
Void elements only have a start tag; end tags must not be specified for void elements.

Bron: http://www.w3.org/TR/html5/syntax.html#void-elements

Het gaat hier om de sluitingstag, maar over het algemeen ook de sluit-slash. Die sluit-slash zoals in <br /> is eigenlijk een xhtml ding.
Gewijzigd op 04/07/2016 14:23:58 door Ozzie PHP
 
Ward van der Put
Moderator

Ward van der Put

04/07/2016 14:33:31
Quote Anchor link
Als het toch een visuele lijn moet zijn in combinatie met geen lijn onder het laatste element, is de CSS-eigenschap border-bottom in combinatie met de pseudo-klasse :last-child misschien een betere oplossing.
 
Ozzie PHP

Ozzie PHP

04/07/2016 14:34:49
Quote Anchor link
@Ward

Lijkt me inderdaad een veel betere oplossing.
 
Thomas van den Heuvel

Thomas van den Heuvel

04/07/2016 14:37:19
Quote Anchor link
Ozzie PHP op 04/07/2016 14:22:23:

En als je daar even doorleest:
Quote:
Then, if the element is one of the void elements, or if the element is a foreign element, then there may be a single "/" (U+002F) character. This character has no effect on void elements, but on foreign elements it marks the start tag as self-closing.
 
Ozzie PHP

Ozzie PHP

04/07/2016 14:39:46
Quote Anchor link
Maar het is dus niet gebruikelijk in html5.

Zie ook hier: http://www.w3schools.com/tags/tag_hr.asp

Quote:
Differences Between HTML and XHTML

In HTML, the <hr> tag has no end tag.
In XHTML, the <hr> tag must be properly closed, like this: <hr />.
 
Thomas van den Heuvel

Thomas van den Heuvel

04/07/2016 14:48:37
Quote Anchor link
Ik denk dat jij het over smaak hebt, ik heb het over geldige syntax. Het is voor syntax niet relevant wat gebruikelijk is of niet, de regels over wat is toegestaan en wat niet zijn duidelijk.
 
Ozzie PHP

Ozzie PHP

04/07/2016 14:52:10
Quote Anchor link
Dan doe je toch wat jij het leukst vindt? Ik geef enkel iets aan, meer niet. Wat je ermee doet moet je zelf weten.
 
Danny von Gaal

Danny von Gaal

04/07/2016 16:28:22
Quote Anchor link
Na het allemaal doorgelezen te hebben vond ik @Ward zijn antwoord het makkelijkst toepasbaar en het mooist. Alleen ik wilde een <hr> omdat ik die namelijk kleiner kan maken dan de div eronder die ik een border-top kon geven.

Alleen het first-child pseudo-class werkt daar niet op dus ik ben uiteindelijk voor de :first-of-type gegaan.
Zie: https://www.w3.org/TR/css3-selectors/#first-of-type-pseudo
 



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.