[JS][PHP] Lap tekst als var meegeven aan JS

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 07:57

Kaastosti

Vrolijkheid alom!

Topicstarter
Ik heb een aantal topics gelezen over het doorgeven van php variabelen aan een javascript functie. Dat gaat goed, geen probleem. Ik heb echter een redelijke lap tekst die ik maar niet goed door weet te geven aan de volgende pagina. Dit is wat ik bedoel:

Ik heb een lap tekst die ik in een php var dump:
code:
1
$responce = addslashes($e['blaatverhaal']);

Vervolgens heb ik een stukje html, met daarin de aanroep naar de functie:
code:
1
echo "<td'>[img]'whois.jpg'[/img]</td>";

De functie die aangeroepen wordt, ziet er zo uit (redelijk standaard):
code:
1
2
3
4
function showWhois(ext)
{
    window.open('whois.php?ext='+ext,'Information','width=500, height=500, toolbar=no, location=no, menubar=no');
}

De lap tekst, waarin erg veel tekens voorkomen die kennelijk niet echt leuk bevonden worden door javascript, krijg ik maar niet op de whois.php pagina te zien. Ik heb de lap tekst in principe in een array staan, welke ik graag in de nieuwe pagina zou willen gebruiken. Dan moet ik er echter een global van maken en globals zijn eng... uiteraard heb ik ook dat wel geprobeerd, maar dat ging 'm niet worden.

Ik heb al verscheidene voorbeelden gezien en geprobeerd, van het gebruiken van globals tot het eng werken met slashes en die dan weer escapen etc.Help! Hoe krijg ik dit voor elkaar?

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
offtopic:
Het is response ;)

Als je de bron weergeeft van de gegenereerde HTML/JS, hoe ziet die er dan uit?
Je dient in ieder geval ' te replacen door \' en een CR en/of LF met een \n
Dat zou een heel eind moeten werken denk ik zo. Ik doe nooit iets met PHP, maar dit moet het dus worden:
code:
1
2
3
Dit is 'n test tekst
welke over meerdere
regels loopt.

output:
code:
1
Dit is \'n test tekst\nwelke over meerdere\nregels loopt

In ASP los ik dat als volgt op:
ASP:
1
2
MyString = MyRecordSet.fields("SomeField").value
Response.write Replace(Replace(MyString,"'","'\"),vbCrLf,"\n")

(Disclaimer: Uit de losse pols :Y) )
Nog mooier is overigens gewoon een RegEx te gebruiken...
MBV schreef op maandag 24 januari 2005 @ 16:15:
Fout, je moet htmlentity's eruit halen. Is ook een php functie voor.
In PHP zeker en vast, in (Classic) ASP niet bij mijn weten :Y)

[ Voor 83% gewijzigd door RobIII op 24-01-2005 16:19 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 20-09 22:44

MBV

Fout, je moet htmlentity's eruit halen. Is ook een php functie voor.

Los daarvan is het vrij zinloos om een hele lap tekst naar de gebruiker te downloaden, en naar jezelf te uploaden. Waarom maak je geen gebruik van sessies? werkt als cookies, alleen blijft het dan op je server

Acties:
  • 0 Henk 'm!

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 07:57

Kaastosti

Vrolijkheid alom!

Topicstarter
En ik zit me een partijtje moeilijk te doen.. komt er eentje met sessies.. DOH natuurlijk :P Niet eens aan gedacht om het op die manier te doen. Dat scheelt in dit geval een boel geprut met javascript. RobIII ook bedankt voor de reactie, die kan ik misschien gebruiken als ik iets kleiners over moet gooien :) thx

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
MBV schreef op maandag 24 januari 2005 @ 16:15:
Fout, je moet htmlentity's eruit halen. Is ook een php functie voor.
html_entity_decode of
PHP:
1
2
3
4
5
6
function unhtmlentities ($string) 
{ 
   $trans_tbl = get_html_translation_table (HTML_ENTITIES); 
   $trans_tbl = array_flip ($trans_tbl); 
   return strtr ($string, $trans_tbl); 
}