Avatar billede lose2life Nybegynder
01. august 2008 - 08:14 Der er 16 kommentarer og
1 løsning

2 simple javascript spørgsmål

Okay har næsten ingen erfaring med javascript, men har et problem som php ik dækker, så roder lidt med java, og det virker næsten, men:

<a href="#" onclick="document.getElementById('PopUp').style.display = 'block'" onmouseover="document.getElementById('linje').value='".<? echo $tekstArray[$c]; ?>."'">

1: Der har jeg prøvet at inkludere noget php i javascriptet, men det virker sq ik helt, browser melder en fejl og printer selvf ik værdien af $tekstArray[$c]. Hvordan kan man flette den php array sammen med javascriptet?

2: Deroppe har jeg lavet både en onclick og onmouseover, men det idelle for mig ville være hvis de begge lå under onclick. Kan man gøre det?
Avatar billede w13 Novice
01. august 2008 - 08:19 #1
Det skal vel være sådan her:

<a href="#" onclick="document.getElementById('PopUp').style.display = 'block'" onmouseover="document.getElementById('linje').value='<? echo $tekstArray[$c]; ?>'">

Har rettet rundt om dit PHP, hvor du havde ". ... ." hvilket jo ikke skal være uden for <?.

En mouseover hører vel ikke til under en onclick, så hvorfor vil du ligge den der? Det kan gøres, men det bliver mere forvirrende.
Avatar billede lose2life Nybegynder
01. august 2008 - 08:35 #2
Tja fordi den hører mere til under onclick, idet at når man trykker på linket, kommer der en css popup hvor der er et felt, hvilket gerne skulle indeholde $tekstArray[$c]. Derfor var det vel mere rigtig hvis den også lå under onclick.

Men prøvede at fjerne "..", det virker desværre ik. Browser siger at "Stregkonstanten er uafsluttet. Prøvede igår at erstattet alt php med tekst, og så virker det fint. Så det må vel være det php der skaber problemer..
Avatar billede w13 Novice
01. august 2008 - 09:11 #3
Du kan gøre sådan her:

<a href="#" onclick="document.getElementById('PopUp').style.display = 'block';document.getElementById('linje').value='<? echo $tekstArray[$c]; ?>'">

Dvs. man adskiller kommandoerne med semikolon.

Ja, fejlen må ligge i indholdet af tekstArray. F.eks. går det jo helt galt, hvis der er ", ' eller linjeskift.
Avatar billede lose2life Nybegynder
01. august 2008 - 09:53 #4
Okay så virker det sku. Hvis jeg fjerner stregen og bare skriv hej i stedet virker det perfekt :) så må lige kigge nærmere på det når jeg kommer hjem.. Men mange tak for hjælpen, smider du et svar?
Avatar billede lose2life Nybegynder
01. august 2008 - 10:56 #5
Okay det forstår jeg simpelthen ik. Hvis jeg i
document.getElementById('linje').value='<? echo $tekstArray[$c]; ?>
sletter [$c], skriver den rigtig nok det "Array".
Hvis jeg så sletter $tekstArray og bare skriver $c, så skriver den rigtig nok det givne tal. Men sætter jeg det sammen virker skidtet ik. Og hvis jeg laver et <?php echo $tekstArray[$c]; ?> efter javascriptet virker det fint og printer det der skal komme.
Kan java ik finde ud af at håndtere [ ] ?
Avatar billede w13 Novice
01. august 2008 - 13:02 #6
Nu er det jo PHP, der har [ ] og ikke JavaScript (bemærk i øvrigt, at Java er et helt andet sprog ;).

Det må simpelthen bare skyldes det, som $tekstArray[$c] indeholder. Som sagt, går det f.eks. helt galt, hvis det indeholder anførelsestegn eller apostroffer. Disse må så enten udelades eller erstattes med f.eks. &nbsp; og &apos;.

Hvad indeholder $tekstArray[$c] helt præcis?
Avatar billede lose2life Nybegynder
01. august 2008 - 14:32 #7
Kun tekst. Har teksten til en sang, og hver linje blir delt op og smidt ind i array. Så et typisk udtag er bare en helt almindelig linje bogstaver med mellemrum, men uden nogle tegn. Forstår simpelthen ik det ik virker. Man kan ik lave $tekstArray[$c] om til såen en javascript "var"?
Avatar billede w13 Novice
01. august 2008 - 14:33 #8
Jo, det er det, du gør.

Det _må_ være pga. specialtegn i din sangtekst. Det er grunden til, det ikke virker.
Avatar billede lose2life Nybegynder
01. august 2008 - 14:42 #9
Hmm ku godt være der lå et linjeskift eller noget.. kigger lige på det og vender tilbage :)
Avatar billede w13 Novice
01. august 2008 - 14:44 #10
Mit gæt er linjeskift eller anførelsestegn.
Avatar billede lose2life Nybegynder
01. august 2008 - 14:52 #11
Det ser ik såen ud. Hvis jeg laver en løkke og printer alle arrays, bliver det bare en lang køre, ud linjeskift eller noget.. Hmm det er sq lidt underligt det her.
Avatar billede lose2life Nybegynder
01. august 2008 - 14:54 #12
der skulle selvfølgelig stå "Uden linjeskift"
Avatar billede lose2life Nybegynder
01. august 2008 - 15:00 #13
Jo det måske være det udtræk der er noget galt med. Hvis jeg laver et $test = array("test"); og print "$test[0]"; inde i javascriptet virker det sq.. Hmm jeg må lige trimme det lidt mere, og hvis det ik virker vender jeg tilbage :) Indtil videre mange tak for hjælpen.
Avatar billede w13 Novice
01. august 2008 - 15:02 #14
Ellers må du lige vise mig den kode, som bliver genereret, dvs. den kode, som kan ses ved Vis Kilde.
Avatar billede w13 Novice
01. august 2008 - 15:02 #15
Selvfølgelig bare den del, der indeholder linksene.
Avatar billede lose2life Nybegynder
01. august 2008 - 15:04 #16
Hold da kæft, bare ved at tilføje trim() så virker skidtet sq :) Tak for hjælpen igen!
Avatar billede w13 Novice
01. august 2008 - 15:07 #17
;) Så lidt og tak for point!
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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