Avatar billede robin_and Nybegynder
16. maj 2001 - 09:21 Der er 37 kommentarer og
1 løsning

variabler i java script

hejsa hvordan sender jeg nogle variabler vidre til en anden fil via et java script!

hvis man kan ???

jeg skal bare ha åbnet et vindue i en bestemt størelse (det kan jeg godt finde ud af) og så skal den sende nogle variabler vilere til filen!

hvis det kan hlælpe så er det i php :)
Avatar billede tknudsen Nybegynder
16. maj 2001 - 09:30 #1
du kunne lave x antal hidden text felter på den side du vil åbne og så tilskrive dem med de variabler du vil:

var whdNewWindow

whdNewWindow = window.open(url_to_newpage,\'\',...div options...);
whdNewWindow.document.forms[0].elements[\'hiddenVar1\'].value = value1;
whdNewWindow.document.forms[0].elements[\'hiddenVar2\'].value = value2;

... osv ...

derefter kan du fange vareiablerne i de hidden felter på body onLoad

eneste \"men\" er at det skal foregå i samme domain - dvs den side du åbner kan ikke ligge på en server udenfor domainet hvorpå den første side ligger.
Avatar billede olebole Juniormester
16. maj 2001 - 09:31 #2
<ole>
Du kan sende dem i URL\'en:

    document.location=\"Din_side.html?var1=noget&var2=noget_andet\";

På modtagesiden henter du dem med:

    var vars=location.search.substring(1,location.search.length).split(\"&\");

Så er vars et array, indholdende dine variabler. Du kan hente dem med f.eks: vars[0] - der returnerer: \'var1=noget\'. Du kan så evt. split\'te igen:

    minVar = vars[0].split(\"=\")[1];

minVar indeholder nu : \'noget\'.

/mvh
</bole>
Avatar billede robin_and Nybegynder
16. maj 2001 - 09:38 #3
hov hov det fatter jeg da ikke meget af :(

det er da ok ud!

men kan du ikke lige forklare lidt mere om det der omLoad og andet! :)

det hele ligger i samme mappe!

jeg her en variable der hedder $hest i filen hest.php

så siger at den skal åbne en ny side men window.open og sende varibalen vidre til den nye fil! fx. hest2.php

sorry men jeg fatter ikke java scripting!

jeg håber at du kan forstå hvad jeg mener! :)
Avatar billede tknudsen Nybegynder
16. maj 2001 - 09:39 #4
hvis du bruger php kan du vel i stil med oleboles svar fange dem i querystring\'en - via var navnet og uden at skulle splitte dem. Nu er jeg ikke den store php koder, men jeg maner at du direkte kan fange dem via $var1 (?)
Avatar billede tknudsen Nybegynder
16. maj 2001 - 09:48 #5
Hvis du ikke vil bruge en form til at sende data med kan du gøre det som jeg skrev, men det kræver at du på en-eller-anden måde får $hest ind i et form element (feks et hidden text felt) og derefter (evt ved et klik på en knap) udfører den kode jeg skrev.

Jeg ville sende $hest\'en via en form:

<form name=\"formHorses\" action=\"hest2.php\">
Heste værdi: <input type=\"text\" name=\"horseValue\" value=\"<?print(\"$hest\");?>\"><br>
<input type=\"submit\" value=\"Send hest\">
</form>

når du trykker på \"Send hest\" knappen submitter formen \"formHorses\" og åbner siden hest2.php. I adresse baren på din browser står der så sti_til_virdir/hest2.php?horseValue=den_indtastede_værdi
Avatar billede olebole Juniormester
16. maj 2001 - 09:49 #6
tknudsen >> Det kan man, men der er jo ingen grund til at bruge performance-sænkende serverside-scripting til ting, der kan gøres på klienten ;o)

Iøvrigt tvivler jeg på, du kan fange variablerne på onload i dit eksempel. Du sender jo variablerne efter vinduet er åbnet - og *måske* efter dokumentet er loaded...det er der ingen, der ved.
/mvh
Avatar billede olebole Juniormester
16. maj 2001 - 09:50 #7
tknudsen >> Min seneste kommentar gik på dit første indlæg  :o)
Avatar billede tknudsen Nybegynder
16. maj 2001 - 09:50 #8
spørgsmålet er så bare hvordan du får fat i variablen horseValue - jeg mener som sagt at du kan forsøge følgende i hest2.php:

<? print(\"$horseValue\"); ?>
Avatar billede olebole Juniormester
16. maj 2001 - 09:53 #9
Er det ikke et JavaScript-spørgsmål - eller har jeg læst kategorinavnet og spørgsmålet helt forkert?  :o)
Avatar billede tknudsen Nybegynder
16. maj 2001 - 09:53 #10
olebole >> ja - ang onLoad og den timing der skal være er jeg selv i tvivl.

Og ang scripting på enten server eller klient er det et temperaments spørgsmål - det kunne jo være at $hest skulle bruges til noget på serveren ;-)
Avatar billede tknudsen Nybegynder
16. maj 2001 - 09:55 #11
olebole >> jow - og det var også derfor jeg startede med at svare i javascript - men det er gået op for mig at robin_and måske ikke er så erfaren inden for web programmering i det hele taget.
Avatar billede tknudsen Nybegynder
16. maj 2001 - 09:57 #12
robin_and >> jeg vil give olebole ret i at det er mere sikkert at sende variablerne i url\'en - rent timings mæssigt - hvis vi snakker data sikkerhed er det en anden sag.
Avatar billede olebole Juniormester
16. maj 2001 - 10:03 #13
tknudsen >> Det ser ikke ud til det i spørgsmålet...vel?

Det er ikke et temperaments spørgsmål, hvis du har mange brugere. Statiske filer vil altid være hurtigere at hente og belaste serveren mindre. Desværre er alt for mange sites lavet i PHP/ASP/JSP uden grund. Det gør dem betydelig langsommere end nødvendigt.
Som oftest er det langt bedre - performance mæssigt - at lade serverside-scripting hjælpe med opdatering og udskrivning af statiske filer. Så belastes serveren kun i opdaterings øjeblikket. Det er i hvert fald en fordel, hvis der ikke opdateres oftere end et par gange om dagen.......men indrømmet: Database-overkill er oppe i tiden! Det er sjovt at lave og man lader sig let imponere over alt det, man kan med de teknologier.
For en mand med en ny hammer, kommer alt til at ligne søm...! Jeg har også selv været der  :o)
/mvh
Avatar billede olebole Juniormester
16. maj 2001 - 10:05 #14
Hvis man er bekymret om datasikkerhed, er det vigtigt at angive metoden \'post\' i form-tag\'et - da man ellers sender variablerne med i URL\'en  :o)
/mvh
Avatar billede robin_and Nybegynder
16. maj 2001 - 10:37 #15
nej jeg tror ikke i fatter hvad jeg mener!

jeg her ikke en \"fast variable\" hvis man kan kalde den det

jeg har en der hedder $navn og en det hedder $score som bliver bestemt på siden før!

jeg skal ikke trykke på nogen knap!

det er et lille spil (flash, php, (java?))

jeg hved ikke helt hvordan jeg skal forklare det!
men..
Avatar billede robin_and Nybegynder
16. maj 2001 - 10:43 #16
og nej jeg er ikke så god til web programmering
jeg kan bare lidt flash det er alt!
Avatar billede olebole Juniormester
16. maj 2001 - 10:44 #17
robin_and >> Det er jo netop det, der er mit udgangspunkt - men vil du ikke godt finde ud af, hvordan du agter at løse det. Du har ingen variabler på klienten, der hedder \'$navn\'...vi taler JavaScript - ikke PHP - og den variabel er vist noget, du har rodende rundt på serveren i et PHP-script. Den kan du ikke få fat i på klienten.
/mvh
Avatar billede olebole Juniormester
16. maj 2001 - 10:45 #18
Prøv evt. at give os en URL til et eksempel.
Avatar billede robin_and Nybegynder
16. maj 2001 - 10:52 #19
ok
http://www.stakkel.dk/games/snake/dns/start.htm
her virker alt som det skal!
jeg vil bare gerne have det til så stå i set nyt vindue!

men så (som jeg fatter det) sender den ikke variablerne med over!

http://www.stakkel.dk/games/snake/dns/test/

se her det er samme kode bare den står i et nyt vindue! :)
Avatar billede tknudsen Nybegynder
16. maj 2001 - 10:53 #20
robin_and >> det er jo netop derfor dette forum er så skide godt - alle kan lære noget
Avatar billede robin_and Nybegynder
16. maj 2001 - 10:57 #21
ja ja jeg skal jo have åpnet et nyt vindue hvor der så er noget php der regner det hele ud

men jeg skal jo bruge et java script til at fortelle hvadfor et vindue jeg skal opne :)

det kan jeg også godt men så kan den jo ikke huske mine php variabler! :(

forstår i det nu!

hvis det var en form så skulle jeg jo bare bruge en send \"POST\" men da jeg ille vil ha en knap! :)

såå håber at i kan hjælpe mig
Avatar billede robin_and Nybegynder
16. maj 2001 - 10:58 #22
stavefejl er gartis!! :)
Avatar billede robin_and Nybegynder
16. maj 2001 - 11:01 #23
bare sig hvis i skal se mine php filer
Avatar billede olebole Juniormester
16. maj 2001 - 11:08 #24
Jamen, du har jo ikke noget at sende videre :o)
Du må først have dine variabler sendt ud af Flash-filmen - det er jeg ikke så stiv i, så for ikke at bilde dig noget vrøvl ind, må jeg nok overlade det til en anden.
Men altså: Dine variabler lever \'en kummerlig tilværelse\' inde i din Flash-film. De skal sendes ud derfra og der skal sættes nogle JavaScript-variabler med disse værdier...SÅ kan du sende dem videre.
/mvh
Avatar billede robin_and Nybegynder
16. maj 2001 - 11:14 #25
det er de jo    se det første eksempel!

den php fil kan godt!

så det er bare det    kan man ikke få et java script til det! :)
Avatar billede olebole Juniormester
16. maj 2001 - 11:24 #26
Jo, men det kræver, jeg kan få fat i dem....men hvis de eksisterer, må du vel kunne fortælle mig, hvad de hedder. Jeg kan ikke finde dem...!
/mvh
Avatar billede robin_and Nybegynder
16. maj 2001 - 11:48 #27
den du skrive navndt i hedder $name
og scoren hedder $score
Avatar billede olebole Juniormester
16. maj 2001 - 11:55 #28
Jeg prøver igen:
Du har ingen tilgængelige variabler...!!! Du har måske nogle variabler - \'name\' og \'score\' - inde i din Flash-film. Dem må du pille ud først, før du kan bruge dem på klienten.
/mvh
Avatar billede robin_and Nybegynder
16. maj 2001 - 12:06 #29
pille ud til hvad???
det er ikke noget problem at smide dem ud i en php fil!

men men men hvis jeg skal have et vindue i en bestemt størelse så km man da kun gøre det i java script ik\'?

og så skal javaen vel sende det vidre til det nye vindue hvor php\'en skal lave alt arbejdet!

så hvor skal jeg smide mine variabler hen??
i en php fil?  det er de jo allerede!

men prøv lige at forklare hvad jeg skal gøre ved mine variabler!
Avatar billede olebole Juniormester
16. maj 2001 - 12:46 #30
Du lader din Flash-film kalde din PHP-side - i eksemplet ovenfor. Det kan den gøre, fordi den kender variablerne...den indeholder dem jo.

JavaScript kender dem derimod ikke...JS kan ikke \'se\' dem. Du skal først gøre dem tilgængelige - du skal \'sende dem ud af\' Flash-filmen, så de bliver globalt tilgængelige. Derefter kan du bruge dem med JS og altså lade JS sende dem videre til, hvad som helst.
/mvh
Avatar billede robin_and Nybegynder
16. maj 2001 - 12:57 #31
ohh d.v.s. at det er et flash problem! :)

Avatar billede jakoba Nybegynder
16. maj 2001 - 13:05 #32
Denner side kan sende og modtage nogle håndlavede parametre:
http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp72036.html

for at sende variable værdier kan du bruge en variation af oleboles svar:

document.location=\"Din_side.html?var1=\" +variabel1 +\"&var2=\" +variabel2;

mvh JakobA
Avatar billede olebole Juniormester
16. maj 2001 - 13:07 #33
Jakob >> Det er ikke problemet...dette er et Flash-problem. Jeg har tip\'et nikolajdu - han kikker på det  ;o)
/mvh
Avatar billede jakoba Nybegynder
16. maj 2001 - 13:12 #34
ups. Sorry
olebole >> hvornår tar du dine point?
Avatar billede olebole Juniormester
16. maj 2001 - 13:17 #35
...ehhhhhh.....points...?!?
Avatar billede nikolajdu Nybegynder
16. maj 2001 - 13:17 #36
Du kan fra Flash loade dine variabler direkte ind i dit PHP script med den her.

    loadVariablesNum (\"test.php4\", 0, \"GET\");

Dette er Flash syntax, men giver i realiteten samme output som Ole Boles idé.

Altså

test.php4?score=100


Ang. dit vindue har du lagt en \"system\" funktion ind i dit html script.

Den kalder du med.

    getURL (java script:system(), \"\", \"GET\");

Du kan også smide det hele ind i Flash istedet med den her stil.

    getURL (\"java script:window.open(\'http://www.stakkel.dk/games/snake/dns/test/test.php4\',\'null\',\'height = 150, width = 300, status = no, toolbar = no, menubar = no, location = no, resizable = no, titlebar = no, scrollbars = no, fullscreen = no, top = 200, left = 250\');\", \"\", \"GET\");

Ovenstående linie kan ikke copy/pastes ind i din Flash, da www.eksperten sætter et ; ind.

/Nikolaj
Avatar billede jakoba Nybegynder
16. maj 2001 - 13:54 #37
Avatar billede olebole Juniormester
16. maj 2001 - 14:08 #38
robin_and >> Hvad endte det med?

nikolajdu >> http://www.eksperten.dk/spm/73222  ;o)

/mvh
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