[php / javascript] Automatische linebreak?

Pagina: 1
Acties:
  • 264 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 15:55

Snow_King

Konijn is stoer!

Topicstarter
Hoi,

Ik ben nu bezig met een CMS, nu loop ik echter tegen een probleem aan.

De search wees helaas weinig uit, dus dan dit topic.

De gebruiker kan in een textarea zijn tekst typen, als de regel te lang wordt voor de textarea breekt de browser dit af naar een volgende regel, op het scherm dan.

Wat zodra de tekst in de database wordt gezet gaat de regel gewoon recht door totdat er ergens een harde return gegeven is.

Nu wil ik dit CMS dus n00b proof maken, dus zoek ik een manier om dit tegen te gaan.

Ik dacht aan javascript, dat als er meer dan zoveel tekens op een regel zijn getypt dat javascript hier automatisch een harde return van maakt, maarja javascript, is client side geeft problemen en ik kan het niet goed.

Ik dacht aan PHP, om die na zoveel teken \n toe te laten voegen, maarja, als een klant zelf een harde return heeft gegeven let PHP daar niet op, en voegt misschien 5 tekens later vrolijk een \n toe.

Wie heeft een slim idee om dit probleem op te lossen?

Acties:
  • 0 Henk 'm!

Verwijderd

Ik denk dat je juist het vanzelfsprekende gedrag van een stuk tekst ermee verknoeit.

Wat is er raar aan het feit dat de tekst in het CMS in een smaller vakje zou kunnen staan dan op de website?

Acties:
  • 0 Henk 'm!

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 15:55

Snow_King

Konijn is stoer!

Topicstarter
Verwijderd schreef op 22 October 2003 @ 20:53:
Ik denk dat je juist het vanzelfsprekende gedrag van een stuk tekst ermee verknoeit.

Wat is er raar aan het feit dat de tekst in het CMS in een smaller vakje zou kunnen staan dan op de website?
het probleem is als volgt.

Als de tekst te lang wordt dan gaat deze over een plaatje heen lopen, dit plaatje staat door middel van CSS rechts uitgelijnd als background (was om HTML technische redenen.

Acties:
  • 0 Henk 'm!

Verwijderd

Snow_King schreef op 22 October 2003 @ 20:55:

het probleem is als volgt.

Als de tekst te lang wordt dan gaat deze over een plaatje heen lopen, dit plaatje staat door middel van CSS rechts uitgelijnd als background (was om HTML technische redenen.
Daar moet je dan eens een plaatje van posten. Op dit moment denk ik eerder dat je dit via de layout van de site moet oplossen.

Acties:
  • 0 Henk 'm!

  • wheez50
  • Registratie: Oktober 2003
  • Laatst online: 15:28
In php:
het tellertje dat om de zoveel karakters een /n neerzet op een /n laten zoeken en bij een gevonden /n z'n teller resetten.

Of denk ik nu te simpel ;)

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Ik denk dat het probleem verholpen is door een tijdens demo scherm resoluties te veranderen / maximaliseren / restore met je ie-window te doen. Dan begrijpen de meeste klanten wel dat html niet echt 100% WYSIWYG is. En dan letten ze over het algemeen hier ook wel op met het invoeren van enters etc.

Acties:
  • 0 Henk 'm!

  • Blue_Thunder_NL
  • Registratie: Februari 2000
  • Laatst online: 15-09 20:31
Hmmmm, het kan wel, maar dan alleen voor MSIE:

code:
1
<textarea name="bla" wrap="hard">BLABLA</textarea>


Het is echter niet W3C Compliant... maar ja

[ Voor 14% gewijzigd door Blue_Thunder_NL op 22-10-2003 22:02 ]

Ik wil zoveel, maar ik doe zo weinig


Acties:
  • 0 Henk 'm!

  • Jurgle
  • Registratie: Februari 2003
  • Laatst online: 24-06 00:27

Jurgle

100% Compatible

en dan hou je nog geen eens rekening dat bij bepaalde lettertypes verschillende letters verschillende lengten hebben (je hebt natuurlijk wel rekening gehouden met hetzelfde lettertype/grootte in de textarea en op de website)

My opinions may have changed but not the fact that I am right ― Ashleigh Brilliant


Acties:
  • 0 Henk 'm!

  • r0bert
  • Registratie: September 2001
  • Laatst online: 30-07 02:32
Ben het inderdaad eens (met Cheatah) dat als je toegang hebt tot de website waar de tekst geïntergreerd zal worden, je de images netjes met float kunt plaatsen oid, zonder dat de tekst over het plaatje heen zal lopen..Lijkt beetje op probleem van kolommen in html/css..

Als het met de lengte echt zo precies komt en het tellen van tekens niet voldoen is, kun je het heel omslachtig in javascript gaan doen.

Tekens stuk voor stuk aan een element toevoegen en de lengte opvragen, als de maximum regellengte is bereikt, laatste letter invoegen op volgende regel. De regelindeling onthouden en gezamenlijk in een element gooien met text-align: justify.. dan moet het vast netjes in orde komen. Vergeet niet dat bij een, door de user ingevoerde, linebreak, er altijd standaard een nieuwe regel moet beginnen natuurlijk ..

T'is een hersenspinsel ;)

edit:
evt. breedtes per karakter/teken in een array opslaan en door het huidige teken met breedte uit de array te combineren (optellen) de lengte bij een bepaalde lengte van een zin te bereken en linebreak in te voegen op de goede positie :)

[ Voor 29% gewijzigd door r0bert op 22-10-2003 23:17 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Geen oplossingen bedenken voor je echt weet wat de topicstarter wil :)

Ik denk dat hij de oplossing op de verkeerde plek zoekt.

Acties:
  • 0 Henk 'm!

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 15:55

Snow_King

Konijn is stoer!

Topicstarter
ja, ik ga eens naar mijn html kijken, of ik daar wat kan verbouwen.

Acties:
  • 0 Henk 'm!

  • Xboty
  • Registratie: September 2003
  • Laatst online: 04-09 13:18

Acties:
  • 0 Henk 'm!

  • Blue_Thunder_NL
  • Registratie: Februari 2000
  • Laatst online: 15-09 20:31
Nee, dit werkt dus niet, want er zijn geen newlines.

Volgens mij is het (zonder allerlei script werk) alleen mogelijk met de door mij eerder genoemde oplossing.

Maar, inderdaad, ben ook ik het eens met de vorige replies, dat er ergens anders (bijv. in de HTML) een denk / ontwerp fout gemaakt is.

Ik wil zoveel, maar ik doe zo weinig


Acties:
  • 0 Henk 'm!

  • Xboty
  • Registratie: September 2003
  • Laatst online: 04-09 13:18
ja ik zag het al :S zelf de post niet goed doorgelezen srry
code:
1
<textarea name="bla" wrap="hard">BLABLA</textarea>
denk ook dat dat de beste manier is

[ Voor 47% gewijzigd door Xboty op 23-10-2003 16:43 . Reden: code erbij ]


Acties:
  • 0 Henk 'm!

Verwijderd

Hallo,


misschien is een optie voor jou om gewoon alles eerst gewoon plain op te slagen in een table (eventueel met addslashes, htmlspecialchars,...) en zoverder.

Als je dan dan de tekst uitleest kan je ook een x aantal characters per zin instellen met de functie wordwrap() van PHP.

Of zoals de anderen zeggen gewoon float: left met css bijvoorbeeld is een erg goede oplossing!

wrap="hard" als attribuut in de textarea is gewoonweg de beste oplossing zoals de anderen hierboven reeds vermeld hebbven ;)
Pagina: 1