Avatar billede loudrup Nybegynder
23. april 2003 - 09:01 Der er 11 kommentarer og
1 løsning

sende og modtage variabler via asp

Jeg har lavet en asp side der har forbindelse til min database. Det er så meningen at brugeren i Flash filmen skal indtaste sit kundeID og reparationsID, hvorefter disse sendes til en asp side der så skal sende yderligere oplysninger tilbage til Flash filmen, men det går ikke så godt. Jeg har lavet et filmklip der indeholder dynamiske tekstfelter så brugeren kan udfylde de ovennævnte felter. Jeg har her brugt følgende kode:

on (release) {
loadVariables("reparation.asp", reparation, "Post");
}
on (release) {
    gotoAndStop(10);
Når så movien går til frame 10 har jeg lavet nogle flere felter hvori informationerne fra asp siden skal sættes ind. Her har jeg brugt følgende kode:

loadVariables("reparation.asp",reparation);
}
Men det virker ikke. Er der nogen der kan hjælpe mig. Jeg har navngivet mit instans "reparation" på selve scenen. Er det muligt at al kode skal ligge sammen. Hvis dette er tilfældet hvordan opretter jeg så ekstra felter.
Jeg håber at der er nogen der kan hjælpe mig.
Avatar billede _k Nybegynder
23. april 2003 - 11:44 #1
Det der går galt er, at du kalder din asp-side 2 gange, og forsøger at bruge resultatet for 2. forespørgsel, som ganske sikkert genererer en blank side?

I stedet, bør du kalde din asp-side én gang for alle, og i samme instans bruge de data du får hentet.
Du behøver faktisk ikke at bruge hverken POST eller GET i denne forbindelse. I stedet, kan du lave en asp-side, som kan kaldes med variable og som omformer resultatet til Flash-syntaks. Jeg tænker noget i retning af: reparation.asp?kundeID=111&reparationsID=222

Denne streng kan laves i Flash, med noget der minder om:
"reperation.asp?kundeID=" + kundeID + "&reperationsID=" + reparationsID

Denne streng kan du så bruge i loadVariables.

Hvis du henter ind i dit mc "reparation", kan du bruge en onClipEvent(data) på den. (data) gør, at event'en først bliver eksekveret, når der kommer en eller anden form for data ind i mc'et. Det der ligger herinde, bliver med andre ord udført, når loadVariables har hentet dataene og lagt dem i mc'et. Din kode kan f.eks. se således ud:

onClipEvent(data) {
  _root.kundeIDTekstFelt.text = this.kundeID; //sætter teksfeltets indhold til brugerens id
  _root.reparationsIDTekstfelt.text = this.reparation;

  _root.gotoAndStop(10); //Får din maintimeline til at gå til frame 10
}
Avatar billede loudrup Nybegynder
23. april 2003 - 13:57 #2
Vil det sige at den sidste
Avatar billede loudrup Nybegynder
23. april 2003 - 14:00 #3
Jeg prøver lige igen. Vil det sige at den sidste kode som du har skrevet kan bruges i mit movieclip i stedet for de 2 som jeg skrev i mit spørgsmål? Kan jeg ikke udskifte _root med navnet på mit movieclip som er "reparation"? Det er fordi jeg ikke rigtigt kan finde ud af det med _root.
Avatar billede _k Nybegynder
23. april 2003 - 17:56 #4
Du skal skrive din loadVariables-streng enten i en frame for sig selv, på en knap, eller i en onClipEvent - f.eks. onClipEvent(load)

_root refererer blot til roden af Flash-filmen. Dvs. at opretter du et mc på din hovedtidslinje, kan du kalde det ved at bruge _root fra dine scripts.
Om du behøver at bruge _root, afhænger af, hvordan du har struktureret din film, og hvordan dine mc'er, tekstfelter osv. befinder sig i forhold til hinanden.

Jeg vil foreslå dig, at lege lidt med _root og variabelkald inden du arbejder for meget med loadVariables, da det ellers godt kan virke lidt uforståeligt....
Avatar billede loudrup Nybegynder
23. april 2003 - 19:27 #5
jeg må ærlig indrømme at det virker meget uoverskueligt for mig for du kommer med så mange forskellige muligheder. Jeg vil lige prøve at forklare hvordan jeg har bygget min side op. I layer 1 frame 1 har jeg en loadMovie, hvor jeg henter et anden swf fil ind. I layer 2 frame 1 har jeg indsat det movieclip som jeg prøver at få til at virke. Nu vil jeg så prøve at forklare hvordan dette er lavet:
Hele movieclippet ligger i samme layer hvor jeg i frame 1 har en stop action.Her har jeg lavet 2 dynamiske tekst felter der hedder kundeID og et andet der hedder reparationsID. Neden under disse felter har jeg lavet en knap der indeholder følgende kode:

on (release) {
loadVariables("reparation.asp", reparation, "Post");
}
on (release) {
    gotoAndStop(10);
}
I frame 10 har jeg så lavet ekstra dynamiske tekstfelter som meget gerne skulle indeholde de oplysninger der kommer fra min asp side. I dette frame altså frame 10 har jeg denne kode:

loadVariables("reparation.asp",reparation);

denne kører så frem til frame 15 der så har en stop action. Det er alt som movieclippet indeholder. Nu kan du så prøve at forklare mig hvordan jeg skal rette den til så det virker.
Avatar billede _k Nybegynder
23. april 2003 - 20:04 #6
Vil lige være sikker på, at jeg forstår det hele:

Hænger de data som brugeren indtaster, sammen med det, som vises i dine tekstfelter i frame 10? Skal det hele betragtes som en slags login funktion?
Avatar billede loudrup Nybegynder
23. april 2003 - 20:16 #7
Det er sådan at brugeren skal have mulighed for at følge sin reparation. Brugeren indtaster så en kodeID sammen med sin reparationsID. Derefter er det så meningen at disse 2 variabler sendes til asp siden, der så skal sende resten af oplysningerne tilbage. (Selvfølgelig kun hvis de rigtige oplysninger er indtastet)Det skal være muligt for brugeren at se om reparationen er påbegyndt eller afsluttet og derfor klar til afhentning.
Avatar billede _k Nybegynder
23. april 2003 - 22:54 #8
ok, så holder min første forklaring stadigvæk vand :o) - jeg uddyber:

På din knap i frame 1, sætter du en kode som siger:

on (press) {
  loadVariables(reparation.asp?kundeID=" + kundeID + "&reperationsID=" + reparationsID, reparation);
}

hvor henholdsvis kundeID og reparationsID hentes fra dine inputfelter. (det bliver de automatisk, hvis du har kaldt dem "kundeID" og "reparationsID")
Således hentes koden ind i dit reparations mc. På dette mc sætter du koden:

onClipEvent(data) {
  onClipEvent(data) {
  _root.gotoAndStop(10); //Får din maintimeline til at gå til frame 10
  _root.kundeIDTekstFelt.text = this.kundeID; //sætter teksfeltets indhold til brugerens id
  _root.reparationsIDTekstfelt.text = this.reparation;
}

Har ikke testet det, men du skal nok have dit reparations mc liggende både i frame 1 og 10 (vel at mærke samme instans af det, hvilket vil sige, at du markerer frame 1 og trykker F5 10 gange)

Det hele tager dog udgangspunkt i, at du kan konstruere en asp-side, som givet variablene kundeID og reparationsID kan generere de Flash-variable du har brug for. F.eks. skal der komme en fejlbesked, hvis kunden eller reparationen ikke eksisterer....
Avatar billede loudrup Nybegynder
24. april 2003 - 09:09 #9
Ja, nu kommer jeg lige igen. Den knap som du snakker om ligger i selve movieclippet sammen med mine tekst felter. Er det ok. Jeg har svært ved at overskue hvornår du snakker om kode i movieclippet og kode til instancen på selve scenen. Jeg har lidt svært ved at se hvor og hvornår jeg skal gøre hvad. Undskyld!!!
Avatar billede _k Nybegynder
24. april 2003 - 10:47 #10
Du skal skam ikke undskylde, vi er her vel allesammen for at blive klogere :o)

Din knap ligger fint nok!

Ved ikke hvad du mener med "instancen på scenen"? De eneste steder du skal lægge script, er på din knap, og på det movieclip (instance) som du har kaldt reparation. Du skal altså ikke "ind" i selve mc'et og skrive koden herinde, men blot lægge koden "på" mc'et.
Avatar billede loudrup Nybegynder
25. april 2003 - 22:02 #11
ok nu er jeg med. Du må nu gerne skrive et svar så jeg kan lukke spørgsmålet.

hilsen loudrup :)
Avatar billede _k Nybegynder
26. april 2003 - 09:14 #12
Lyder godt :o)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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