Avatar billede natsprinter Nybegynder
07. februar 2007 - 17:12 Der er 17 kommentarer og
1 løsning

ASP siden åbner når der sende data til siden fra Flash

Jeg bruger ASP til at styre læsning og tilgang til min database. I den forbindelse skal jeg også sende data til databasen. Det gør jeg ved at kalde en asp fil.

Du virker perfekt på nær én irriterende detalje. ASP filen åbner i browseren. Det er ikke meningen - den skal blot fungere som en slags CGI der henter og bringer data til min SWF-fil.

Jeg har løst problemet ved at sætte følgende i min ASP-fil

<body onload="window.close();">

Så åbner vindue et mikrosekund, og lukker så.

Mit spørgsmål er - kan man ikke få en ASP-side til at virke uden at den nødvendigvis behøver at åbne i browseren.

Min kode i flash der sende variabler afsted til ASP Scriptet ser således ud:

getURL("dataFraOlympia.asp", "_blank", "POST");

Det spiller, men jeg vil gerne skifte fra mol til dur.
Avatar billede mat Nybegynder
07. februar 2007 - 17:17 #1
Brug LoadVars klassen til den slags, med LoadVars.sendAndLoad kan du sende variabler til dit asp script og modtage svaret uden nye browservinduer.

mvh mat
Avatar billede natsprinter Nybegynder
07. februar 2007 - 17:36 #2
Hmm - har studeret lidt i ActionScript CookBook og fundet frem til noget. Kunne det her virke?

on (release) {
sendData = new LoadVars();
sendData.send("dataFraOlympia.asp")
}


//Jann
Avatar billede natsprinter Nybegynder
07. februar 2007 - 17:40 #3
Næhh - Jeg får ingen fejl - men der sendes tilsyneladende ikke nogen data afsted til asp-filen nu :-(
Avatar billede alexander_j Nybegynder
07. februar 2007 - 17:41 #4
Det ser ikke helt forkert ud - prøv det.
Normalt ville jeg placere 'sendData = new LoadVars();' uden for min onRelease, således at den ikke behøvede at definere en ny LoadVars hver gang man trykkede på knappen.

Problemet med den oprindelige kode er (udover at LoadVars er bedre egnet til den slags dataoverførsel) der hvor der står "_blank", som jo betyder at siden skal kaldes i et nyt vindue (ligesom i et HTML-link).
Avatar billede alexander_j Nybegynder
07. februar 2007 - 17:42 #5
Det gjorde der da heller ikke i dit gamle script?
Avatar billede cpufan Juniormester
07. februar 2007 - 17:45 #6
loadVariables("datafraolympia.asp","");
Avatar billede cpufan Juniormester
07. februar 2007 - 17:49 #7
for at være sikker på at variablerne er indlæst inden de forsøges brugt:
på din aspside

sidste variabel:
slutvar=slut


I flash
actionscript:
1. frame
loadVariables("datafraolympia.asp","");
if(_root.slutvar != undefined)
{gotoAndPlay(3)}
2.frame
gotoandplay(1)
3.frame
din movie
Avatar billede mat Nybegynder
07. februar 2007 - 17:52 #8
cpufan > loadVariables er noget gammelt stads, og med LoadVars får du eventhandlers så man er fri for den slags frameloops.

natsprinter > Du skal nok tilføje variablerne til dit LoadVars objekt, a la;

sendData = new LoadVars();
sendData.min_var = some_variable;
sendData.send("dataFraOlympia.asp");

Så vil du kunne fange den som "min_var" i dit asp script.

mvh mat
Avatar billede natsprinter Nybegynder
07. februar 2007 - 17:53 #9
Jo det "gamle" script fungere fint, blot med den trælse hage, at der åbnes et browservindue i et splitsekund.

Jeg prøver nu at tvinge loadVar.send til at anvende "post" - selv om det tilsyneladende er default.

on (release) {
sendData = new LoadVars();
sendData.send("dataFraOlympia.asp", null, "post")
}

Jeg har godt set din kommentar om placering af new LoadVars(); Vil du i stedet sætte den i en frameAction ?
Avatar billede natsprinter Nybegynder
07. februar 2007 - 18:00 #10
Nu har jeg prøvet at gøre således - det virker nu heller ikke :-(

on (release) {
sendData = new LoadVars();
sendData.navn = navn;
sendData.adresse = adresse;
sendData.postnr = postnr;
sendData.byen = byen;
sendData.mail = mail;
sendData.buks = buks;
sendData.ok = ok;
sendData.send("dataFraOlympia.asp", null, "post")
}
Avatar billede alexander_j Nybegynder
07. februar 2007 - 18:08 #11
Prøv bare for sjov at bruge 'sendData.load' i stedet for 'sendData.send'.
Prøv også med 'sendAndload'.
Avatar billede natsprinter Nybegynder
07. februar 2007 - 18:14 #12
Jeg bruger .Load når jeg henter fra mit ASP-script. Det virker fint. sendAndLoad er jo kun anvendelig, hvis jeg ønsker svar retur fra ASP Scriptet. Det gør jeg ikke i dette tilfælde. Jeg vil bare sende data til mit asp. Jeg har prøvet at "trace" strengen i sendData. Det ser ok ud - ligner næsten en QueryString.
Avatar billede natsprinter Nybegynder
07. februar 2007 - 18:25 #13
Er gået tilbage til:

on (release) {
getURL("dataFraFlash.asp", "_blank", "POST");
_parent.play();
}

Det virker trods alt. Se www.testmig.dk/olympia
Avatar billede alexander_j Nybegynder
07. februar 2007 - 18:52 #14
Jeg synes du skal prøve at gøre som jeg skriver: prøv med load - også selvom den er ment til at hente noget, så kan den nemlig sagtens bruges til at sende noget med.

Jeg havde også en gang problemer med 'send' og fandt aldrig ud af hvorfor det ikke virkede, da 'load' virkede fint til formålet.
Avatar billede natsprinter Nybegynder
07. februar 2007 - 20:52 #15
Nu har jeg testet:

on (release) {
//getURL("dataFraFlash.asp", "_blank", "POST");
sendData = new LoadVars();
sendData.navn = navn;
sendData.adresse = adresse;
sendData.postnr = postnr;
sendData.byen = byen;
sendData.mail = mail;
sendData.buks = buks;
sendData.ok = ok;
sendData.load("dataFraOlympia.asp")
_parent.play();
}

Det spiller ikke - går tilbage til plan A igen :-(
Avatar billede alexander_j Nybegynder
07. februar 2007 - 22:11 #16
var sendData = new LoadVars();
sendData.navn = "navn";
sendData.adresse = "adresse";
sendData.postnr = "postnr";
sendData.byen = "byen";
sendData.mail = "mail";
sendData.buks = "buks";
sendData.ok = "ok";
sendData.sendAndLoad("sendData.php",sendData,"POST");

^^Har lige testet denne her og den virker.
Avatar billede natsprinter Nybegynder
07. februar 2007 - 22:20 #17
Hvad sker der for dig - du er jo et geni.

Dette blev det endelige resultat

on (release) {
//getURL("dataFraFlash.asp", "_blank", "POST");
var sendData:LoadVars = new LoadVars();
sendData.navn = navn;
sendData.adresse = adresse;
sendData.postnr = postnr;
sendData.byen = byen;
sendData.mail = mail;
sendData.buks = buks;
sendData.ok = ok;
sendData.sendAndLoad("dataFraFlash.asp",sendData,"POST");
_parent.play();
}

Og det virker - smid et svar så jeg kan overdynge dig med 30 point - OG TAK.
Avatar billede alexander_j Nybegynder
07. februar 2007 - 22:25 #18
Tak for rosen - lidt mere af den, så kan du beholde pointene selv :-D
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