Avatar billede joamla Nybegynder
30. juni 2014 - 15:35 Der er 2 kommentarer

unterminated string literal

Hej

Sidder og roder med ngoet PHP, hvor jeg gerne vil smide en array af tal over og behandle det i jQuery via en function og et link.

Bruger jQuery v1.11.0

Her er det PHP/html/mm. jeg har sat op:
http://pastebin.com/iaHmUnYa

og det jQuery/JavaScript der behandler:
function catPresets(ids) {
    console.log(ids)
    ids = jQuery.parseJSON(ids);
   
    for(var k in ids) {
      console.log(ids[k]);
    }
}

I firefox's consol kommer fejlen:
SyntaxError: unterminated string literal

Bruger næsten aldrig javascript eller jquery, og kan ikke forstå fejlen.
Avatar billede HBP2 Praktikant
30. juni 2014 - 20:55 #1
Der kommer aldrig noget godt ud af at inkludere javascript i onclick="" eller lignende. Der er alt for stor risiko for rod med '' og "" og \" og \' og andre måder at escape på. Jeg tror ihvertfald din løsning går galt hvis $presets indeholder en streng. Kig evt. på HTML sourcen, og se om ikke indholdet i onclick="..." indeholder et ".

Prøv at lade være med at kalde json_encode() for hvert enkelt element i $presets, men brug istedet noget i retningen af
  echo 'var presets = '.json_encode($presets).';';
Så har du hele tabellen inde i javascript, uden at skulle bekymre dig om ' og " osv osv osv.
Avatar billede joamla Nybegynder
01. juli 2014 - 04:07 #2
Det viste sig så at den foreach der tog alle kateogierne ned i en array satte det som strings, så var bare lige at definere det som en int.

Tak for inspirationen HBP2, kan du ikke lige skrive et svar så jeg kan gi' nogle points?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester