br2nl en Ajax

Pagina: 1
Acties:

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 08-10 13:03
Ik zit met een lastig probleem: in mijn db staat HTML-tekst (alleen <br /> tags worden gebruikt)

Deze HTML wil ik weergeven in een textarea. Geen probleem zou je zeggen: de string even door een

PHP:
1
2
3
4
function br2nl($string)
{
  return  str_replace(array("<br />", "<br>"), '\r\n', $string) ;
}


heenhalen en klaar is oke. Niet dus.

In FF doet hij het gewoon goed: de <br>'s zijn netjes vervangen door newlines. In Internet Explorer niet aldus. De <br> zijn wel weg, maar niet vervangen door newlines.

Het gaat wel goed als ik alles met PHP doe (dus geen ajax), maar dan moeten er wel dubbele quote's rond \r\n staan in de functie br2nl

PHP:
1
2
3
4
5
6
7
8
9
$tekst="blablabla<br>blabla<br />blabla<br>";

function br2nl($string)
{
  return  str_replace(array("<br />", "<br>"), "\r\n", $string) ; //werkt
//return  str_replace(array("<br />", "<br>"), '\r\n', $string) ; //werkt niet
}

echo '<textarea>'.br2nl($tekst).'</textarea>';


Vanwege AJAX kunnen die dubbele quotes echter niet, want dan breekt mijn array-response af:

JavaScript:
1
2
3
//dit vindt Javascript niet leuk:
var returnArray = new Array("a","bla
blah bla");


Heeft iemand hier een oplossing voor?

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 10:44

RM-rf

1 2 3 4 5 7 6 8 9

PHP:
1
return  str_replace(array("<br />", "<br>"), "\\\r\n", $string)

zou een prima door javascript te renderen string moeten retourneren:
JavaScript:
1
2
var returnArray = new Array("a","bla \
blah bla");

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 08-10 13:03
Je hebt gelijk, maar nu doen de newlines het zowel in FF als IE niet meer..

Het gekke is: als ik de string 'alert' in JS, geeft hij de newlines wel weer met mijn originele script... en ik begrijp nu ook waarom. Ik gebruikte de innerHTML-property van de TEXTAREA ipv de VALUE. Kennelijk beschouwd IE e.e.a. dan als HTML 8)7

Bedankt voor de hulp!

[ Voor 64% gewijzigd door Rekcor op 29-03-2007 15:01 ]


Verwijderd

waarom zou je de <br /> willen vervangen door <br>? volgens de XHTML4.01 specificatie MOET je <br /> gebruiken. anders breek je de standaard.

refrase: waarom wil ik mijn html code incompatible maken?

  • CyPh
  • Registratie: Februari 2002
  • Laatst online: 09:08
Verwijderd schreef op donderdag 29 maart 2007 @ 15:03:
waarom zou je de <br /> willen vervangen door <br>?
Hoe kom je daarop? Bekijk die code nog eens goed

Uw advertentie hier?


  • Joolee
  • Registratie: Juni 2005
  • Niet online
--

[ Voor 100% gewijzigd door Joolee op 29-03-2007 15:06 ]


  • Swaptor
  • Registratie: Mei 2003
  • Laatst online: 15-10 19:25

Swaptor

Java Apprentice

Verwijderd schreef op donderdag 29 maart 2007 @ 15:03:
waarom zou je de <br /> willen vervangen door <br>? volgens de XHTML4.01 specificatie MOET je <br /> gebruiken. anders breek je de standaard.

refrase: waarom wil ik mijn html code incompatible maken?
Sterker nog: Wie zegt dat TS gaat voor een XHTML-spec?
"Gewoon" HTML4.01 Loose accepteert ook gewoon <br>, en ik zie niet wat daar mis mee zou kunnen zijn.

[ Voor 50% gewijzigd door Swaptor op 29-03-2007 15:09 . Reden: editje ]

Ontdek mij!
Proud NGS member
Stats-mod & forum-dude


Verwijderd

dat de huidige browsers niet over hun nek gaan als ze <br> zien betekent nog niet dat je daarom maar <br> moet gaan gebruiken?!?! daarnaast zegt de TS dat zijn data als <br /> opgeslagen zit in de database dus waarom <br> naar <br /> converteren?

maar de TS had zijn probleem al opgelost.

Verwijderd

Verwijderd schreef op donderdag 29 maart 2007 @ 15:03:
waarom zou je de <br /> willen vervangen door <br>? volgens de XHTML4.01 specificatie MOET je <br /> gebruiken. anders breek je de standaard.

refrase: waarom wil ik mijn html code incompatible maken?
Hoe kom je erbij dat hij <br /> wil replacen voor een <br> ?

  • CyPh
  • Registratie: Februari 2002
  • Laatst online: 09:08
Verwijderd schreef op donderdag 29 maart 2007 @ 15:20:
dat de huidige browsers niet over hun nek gaan als ze <br> zien betekent nog niet dat je daarom maar <br> moet gaan gebruiken?!?! daarnaast zegt de TS dat zijn data als <br /> opgeslagen zit in de database dus waarom <br> naar <br /> converteren?

maar de TS had zijn probleem al opgelost.
Hij wil <br> en <br /> vervangen door \r\n.....
nogmaals bekijk die code eens goed

[ Voor 5% gewijzigd door CyPh op 29-03-2007 15:30 ]

Uw advertentie hier?


Verwijderd

Voegt niet veel toe t.o.v mijn vorige opmerking

[ Voor 86% gewijzigd door Verwijderd op 29-03-2007 15:36 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op donderdag 29 maart 2007 @ 15:03:
waarom zou je de <br /> willen vervangen door <br>? volgens de XHTML4.01 specificatie MOET je <br /> gebruiken. anders breek je de standaard.

refrase: waarom wil ik mijn html code incompatible maken?
XHTML4.01 bestaat niet, wel HTML4.01 en XHTML1.x en de laatste is niet beter of nieuwer dan HTML4.01.

In feite is het eigenlijk puur te danken aan het feit dat browsers juist niet helemaal volgens de standaard parsen anders zou je in je XHTML document verstuurd als text/html (aka faux XHTML) overal groter-dan tekens te zien krijgen.

Ik denk dat je je eens wat moet gaan inlezen over wat HTML precies is, wat XHTML precies is en vooral wat XHTML niet is (en welke browsers het ueberhaupt ondersteunen en welke niet :P )

[ Voor 12% gewijzigd door crisp op 29-03-2007 15:39 ]

Intentionally left blank

Pagina: 1