Hi,

Ben nu al een paar avonden aan het stoeien met iets waar ik niet uit kom.

Een query van een gastenboek waarvan ik het bericht op een postit blaadje wil laten weergeven. dus simpel een divje gemaak van 300x300px. Maar ik krijg het niet voor elkaar dat de tekst binnen de div blijft en wordt afgebroken om op de volgende regel verder te gaan... vlgs mij alles geprobeerd met css.

Kan iemand helpen? Het gaat om deze query

<?php
// Gegevens ophalen uit de database en sorteren op id
$sql = mysql_query("SELECT * FROM gastenboek ORDER BY datum DESC");
if (mysql_num_rows($sql) == 0) {
    // Als er nog geen reacties geplaatst zijn
    echo 'We hebben nog geen reacties!';
} else {
    while($data = mysql_fetch_assoc($sql)) {
        // Als er wel reacties zijn geplaatst worden deze nu weergegeven
        echo '<div id="memocontent"><b>Naam:</b> '.htmlspecialchars(stripslashes($data['naam'])).'<br />
        <b>Datum:</b> '.htmlspecialchars(stripslashes($data['datum'])).'<br />
        <b>Bericht:</b><br />'.ubb($data['bericht']).'</div><br />';
    }
}
?> 
Daarvoor moet je [php]wordwrap()[/php] gebruiken.
Daarmee kun je na x aantal tekens de zin afbreken.

Als je dan ervoor wilt zorgen dat er maar bijvoorbeeld 50 karakters per regel moeten en later niet in de problemen wilt komen dat de div uitrekt door andere content, kun je het beste de div opvullen met M'en (dit is de breedste letter)

Deze functie is overigens niet aan te raden is een ubb parser.
Stel dat m'n zin afgebroken wordt na [b, dan word je niet vrolijk.
Bedankt Roel,

ben hiermee ook aan de gang geweest maar krijg het niet voor elkaar.
Ik kan dit
 '.ubb($data['bericht']).' 
toch niet in een variabele zetten en zodoende wordwrap() toepassen?
Waarom zou je dat in een variabele moeten zetten? Ik ga er vanuit dat ubb een functie is die je UBB code parsed. ( -puntjes weglaten- [B.][./B] wordt <b></b>) Wat je dus prima kan doen:


<?php
    echo '<div id="memocontent"><b>Naam:</b> '.htmlspecialchars(stripslashes($data['naam'])).'<br />
        <b>Datum:</b> '.htmlspecialchars(stripslashes($data['datum'])).'<br />
        <b>Bericht:</b><br />'.wordwrap(ubb($data['bericht']), 200, '<br />').'</div><br />';
?>


Je moet alleen $data['bericht'] door wordwrap doen
@Jordi

Inderdaad. PHP ziet nl. niet dat het HTML is, dus zal hij onnodig te vroeg splitsen.


<?PHP
ubb(wordwrap($data['bericht'], 200, '<br />'));
?>
Krijg het voor geen meter voor elkaar.

Hoe pas ik deze
<?php
ubb(wordwrap($data['bericht'], 200, '<br />'));?>


in deze
 <?php
    echo '<div id="memocontent"><b>Naam:</b> '.htmlspecialchars(stripslashes($data['naam'])).'<br />
        <b>Datum:</b> '.htmlspecialchars(stripslashes($data['datum'])).'<br />
        <b>Bericht:</b><br />'.wordwrap(ubb($data['bericht']), 200, '<br />').'</div><br />';?>



[size=xsmall]Toevoeging op 10/03/2011 23:11:49:[/size]

Ik krijg deze foutmelding:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in

maar kom er niet uit. kan iemand helpen dit optelossen?

<?php
// Gegevens ophalen uit de database en sorteren op id
$sql = mysql_query("SELECT * FROM gastenboek ORDER BY datum DESC");
if (mysql_num_rows($sql) == 0) {
    // Als er nog geen reacties geplaatst zijn
    echo 'We hebben nog geen reacties!';
} else {
    while($data = mysql_fetch_assoc($sql)) {
        // Als er wel reacties zijn geplaatst worden deze nu weergegeven

 echo '<div id="memocontent"><b>Naam:</b> '.htmlspecialchars(stripslashes($data['naam'])).'<br />
        <b>Datum:</b> '.htmlspecialchars(stripslashes($data['datum'])).'<br />
        <b>Bericht:</b><br />'ubb(wordwrap($data['bericht'], 200, '<br />'))'</div><br />';
		
    }
}
?>

Reageren