Avatar billede fedtoere Praktikant
08. april 2004 - 13:16 Der er 6 kommentarer og
2 løsninger

hvordan henter jeg data fra en asp fil til en label i Flash ?

Er der nogle der kan hjælpe mig ?

Jeg har lavet en følgende:

  en Access DB  (placering /www.xx/db/flash_db.mdb)
  et ASP script (placering /www.xx/ver1/testhentdata.asp)
  en FLASH fil  (placering /www.xx/ver1/Movie1.swf)

Det jeg ønsker er blot at hente et element fra min Access DB og indsætte dette i mit labelfelt i Flash brugergrænsefladen.

Jeg har følgende:

DB indeholder: 
    en tabel med navnet              = flash_tabel
    en post i flash_tabel med navnet = navn

ASP-script indeholder:
  Set Conn = Server.CreateObject("ADODB.Connection")
  DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
  DSN = DSN & "DBQ=" & Server.MapPath ("../db/flash_db.mdb")
  Conn.Open DSN

  strSQL = "SELECT navn FROM flash_tabel;"
  Set response = Conn.Execute(strSQL)

  Response.Write response("var_navn")

  Conn.Close
  Set Conn = Nothing

Flash fil indeholder en knap med:
  on release 
  {loadVariablesNum("testhentdata.asp", 0, "POST");}

samt et dynamic text felt med navnet var_navn


Min formodning var at når jeg trykker på knappen i Flash filen så vil mit labelfelt blive opdateret med
første forekomst af navn i tabellen flash_tabel...

Men det gør den ikke, hvad er forkert ?
Avatar billede jerving Nybegynder
08. april 2004 - 19:56 #1
Hvis du starter med at lave din asp-kode om til, at den laver et output, der ser således ud:

&record_value=kolonneværdi

Herefter vil jeg fraråde at benytte loadVariablesNum, da det er en forældet og ufleksibel metode.

Brug i stedet klassen LoadVars (Flash MX+)

Benyt den på følgende måde:

buttonLableLv = new LoadVars();
buttonLableLv.onLoad = function(success){
    if(success){
        var_navn.text = this.record_value;
    }else{
        trace(“Du har lavet en fejl i din asp-kode”);
    }
}
buttonLableLv.onLoad.load(“http://www.dinAspKode.asp”, buttonLableLv.onLoad, “GET”);

Held og lykke!
Avatar billede jerving Nybegynder
08. april 2004 - 19:58 #2
Sorry, skrev lige noget vrøvl - her er den:

buttonLableLv = new LoadVars();
buttonLableLv.onLoad = function(success){
    if(success){
        var_navn.text = this.record_value;
    }else{
        trace(“Du har lavet en fejl i din asp-kode”);
    }
}
buttonLableLv.load(“http://www.dinAspKode.asp”, buttonLableLv.onLoad, “GET”);
Avatar billede fedtoere Praktikant
08. april 2004 - 20:22 #3
Jeg har lige et par spørgsmål:
I min ASP fil, skal jeg da lave følgende

      &record_value = response

Mht Flash, så har jeg desværre kun Flash 5, kan jeg lave noget i den version  der minder om LoadVars()?
Avatar billede jerving Nybegynder
08. april 2004 - 20:35 #4
Ok,

ASP'en:
Response.Write "&record_value=" & rs("TabelVærdien")

Er ikke 100% sikker på at dette er korrek (har ikke brugt loadVariables i meget lang tid):

on release{
  loadVariablesNum("testhentdata.asp", 0, "POST");
  //Check at den bliver modtaget
  trace(_root.record_value);
  //Sæt tekstfeltets variabelværdi til at være den hentede variabels værdi
  var_navn = _root.record_value;
  }
Avatar billede pyroman Nybegynder
09. april 2004 - 16:21 #5
I ASP'en skal du bare sørge for at alle variabler bliver udskrevet med deres navn først, efterfulgt af et "=" og så deres værdi:

varNavn=varVærdi

Hvis der er flere variabler skal disse adskilles af et "&":

varNavn1=varVærdi1&varNavn2=varVærdi2&varNavn3=varVærdi3

Det er vigtigt at der ikke er nogle nye linjer eller unødvendige mellemrum før "=" tegnet. fx:

varNavn1 =værdi1
&varNavn2 =værdi2

Denne kan give problemer i flash...


I flash kan det være smart at lave et movieclip der tjekker om dataene er hentet. Derfor lave du lige et nyt movieclip med navnet "dataHolder" og smider det i _root med samme instance navn...

Og så koden i flash:

På knappen:

on(release){
  _root.dataHolder.loadVariables("testhentdata.asp");
}

På "dataHolder":

on(data){
  trace("Variabler er hentet");
  var_navn = this.var_navn;
}

this.var_navn skal så lige ændres til din ASP var's navn...
Avatar billede fedtoere Praktikant
09. april 2004 - 22:10 #6
Tak for hjælpen.
Jeg kan nu overføre data fra min Access DB til min Flash front-end.
Nu skal jeg blot finde ud af hvordan jeg behandler data i mit asp script så jeg kan overføre hele databasen.
Avatar billede fedtoere Praktikant
10. april 2004 - 11:03 #7
point
Avatar billede jerving Nybegynder
10. april 2004 - 11:36 #8
Hej igen fedtoere,

Den var nu så lidt. Hvis du virkelig skal igang med at udvikle løsninger, der anvender ekstern data fra databaser og fx. XML, kan jeg bestemt anbefale at opgradere til Flash MX 2004 (helst Professional).

Det vil gøre det langt nemmere for dig at behandle de data du henter på en logisk og overskuelig måde. Med ActionScipt 2.0 kan du hurtigt skrive en fornuftig klasse som en udvidelse af MX's eksisterende LoadVars(), og herefter referere til det hentede input med fx. column[int] og row[int]. Det vil gøre din kode langt mindre og formentlig mere fleksibel.

Held og lykke
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