Toon posts:

[JavaScript][PHP] Gezooi met quotes

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,
Ik heb een verschrikkelijk achterlijk probleem, na 3 uur prutsen nog niet opgelost!! :( :( ;(

Het gaat om het volgende probleem.
Je kent allemaal het idee `tracker` wel. Hij haalt de headlines uit database en deze jaagt PHP door een loop. De output is bijv.de volgende code:
code:
1
trkItem( '567', '12:18', 'Nieuwe patch voor Interne...', '[ Software ] Nieuwe patch voor Internet Explorer', '0' );

De PHP-loop zet het zo neer:
code:
1
echo "trkItem( '$NewsID', '$tHour_Min', '" . addslashes($NewsTitleShort) . "', '[ " . $NewsSectionTitle . " ] " . addslashes($NewsTitle) . "', '$Read'

De javascript-functie trkItem ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function trkItem( id, time, title, fulltitle, read ) {
    var style;
    if (read == 1)
    {
        style = 'trkRead';  
    } else {
        style = 'trkNotRead';
    }
    // ff voor het gemak vars maken
    var Mouse, MouseOut, acronymtitle, AltTitle;
    Mouse    = 'window.status=\'' + fulltitle + '\'; return true;';
    MouseOut = 'window.status=\'\'; return true;';

    var pattern  = /\\/g;
    acronymtitle = fulltitle.replace(pattern,"");

    AltTitle = 'acronym title="' + acronymtitle + '"';

    document.write( '<tr><td width="100%" class="' + style + '">' + time + '&nbsp;&nbsp;<a class="' + style + '" href="/nieuws.php/' + id + '" OnMouseOver="' + Mouse + ';return true;" OnMouseOut="' + MouseOut + '" ' + AltTitle + '>' + title + '</a>' );

Wie o wie helpt mij van de volgende error af:
code:
1
2
3
Syntax error in event handler (line 1)
.status='[ Internet ] Klanten Chello zijn 'service' UPC zat'
---------------------------------------------------^

Het zit 'm in de quotes. Maar het is zo'n ENORME troep, al die stripslashes, replaces ed dat ik er _niet_ meer uit komt.

De uiteindelijke complete html-code ziet er zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
trkItem( '570', '13:43', 'Philips investeerd\' in Am...', '[ Telecom ] Philips investeerd\' in Amerikaanse breedbandbedrijf', '0' );
trkItem( '569', '13:22', 'Tijd voor investeringen i...', '[ Internet ] Tijd voor investeringen in internetinfrastructuur', '0' );
trkItem( '568', '12:46', 'Vroegere telecomgiganten ...', '[ Telecom ] Vroegere telecomgiganten hinderen invoering ADSL', '0' );
trkItem( '567', '12:18', 'Nieuwe patch voor Interne...', '[ Software ] Nieuwe patch voor Internet Explorer', '0' );
trkItem( '566', '09:40', 'Google gaat Linux-hardwar...', '[ Hardware ] Google gaat Linux-hardware aan bedrijven leveren', '0' );
trkItem( '565', '22:39', 'Klanten Chello zijn \\\'ser...', '[ Internet ] Klanten Chello zijn \\\'service\\\' UPC zat', '0' );
trkItem( '564', '22:31', 'Groot probleem met de MSN...', '[ Telecom ] Groot probleem met de MSN messenger', '0' );
trkItem( '563', '20:07', 'Voorlopig nog niet elektr...', '[ Internet ] Voorlopig nog niet elektronisch stemmen in Nederland', '0' );
trkItem( '562', '19:49', 'Kopstukken Microsoft gaan...', '[ Software ] Kopstukken Microsoft gaan getuigen', '0' );
trkItem( '561', '19:30', 'Fortuyn-discussiesite ges...', '[ Internet ] Fortuyn-discussiesite gesaboteerd', '0' );
trkItem( '560', '01:13', 'Klantgegevens worden door...', '[ Internet ] Klantgegevens worden door providers doorgegeven aan justitie', '0' );trkItem( '559', '18:20', 'Internet-via-stopcontact ...', '[

;(

[edit]
Hieronder nog een screenshotje van hoe het er nu uitziet met de code zoals die hieronder staat. In Opera 5.
Afbeeldingslocatie: http://nl.linux.org/~jdewit/tmp.jpg

Enne, dit is echt een post voor breedbeelders :+

[edit]
Ik vergat te zeggen: Let goed op de quotes, hoe die op de screenshot eruit zien!
Bovenaan bij het Philips bericht staat ook nog een quote!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Bij Philips staat een quote
code:
1
2
investeerd\'
         ^
d'r staat ook een quote in je code....

maar verder snap ik het probleem niet helemaal...
Als je alles escapet zoals het hoort (en dan bedoel ik alleen de enkele quotes en slashes, de rest hoeft niet) moet 't toch gewoon goed gaan :?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
De grootste problemen zijn opgelost met een extra addslashes()...

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 00:15
Op woensdag 13 februari 2002 17:40 schreef Boer_Frients het volgende:
De grootste problemen zijn opgelost met een extra addslashes()...
En de kleinere problemen :?

Verwijderd

Topicstarter
Op woensdag 13 februari 2002 17:49 schreef ddc het volgende:

[..]

En de kleinere problemen :?
Hou nou in de tracker met een woord met quotes erin dit over:
code:
1
22:39  Klanten Chello zijn \'ser...

Zulke dingen lukt het me nog niet om dat via een javascriptje eraf te rukken. Maar ook dat komt vast wel voor elkaar. Iemand hier :? :9

Verwijderd

Topicstarter
Idd, ik heb het volgende probleem nu. Na een functie aangeroepen te hebben die de boel opmaakt, krijg ik de volgende javascript output:
code:
1
2
3
4
5
6
7
bignews( '569', 'Dinsdag 13:22', 'Internet', 'Tijd voor investeringen in internetinfrastructuur', '0', 'In de afgelopen jaren is het midden- en kleinbedrijf niet zo happig geweest om investeringen te doen in alles wat met internet te maken heeft, vooral door de kosten van die investeringen. Maar volgends onderzoeks bureau Gartner is het nu zo langzamerhand tijd geworden om de investeringen door te zetten.
<br />

<br />
Vooral door de dalende prijzen van het content management en e-commerce, door het steeds groter wordende aanbod, is de timing nu optimaal om de internet investeringen te doen, aldus Gartner.
<br />
', 0 );

De _gein_ is dat er allemaal enters in staan. In het aanroepen van de functie dus (8> en ik denk dat 'ie daar nu op hangt. Hoe krijg ik via een javascript cq php functie die #10 en #13 weg, of beter gezegt, die [ENTER].? :Y)
Pagina: 1