Avatar billede jenslyn_s Nybegynder
25. januar 2005 - 15:22 Der er 11 kommentarer og
1 løsning

Hente flere rækker. PHP, MySQL til Flash

Har et godt kendskab til php og mysql, men er først nu begyndt at knytte Flash og php sammen. Jeg kan godt hente én række ind i flash, men hvad hvis jeg har i.ex. 20 rækker. Kan jeg gemme dem i et array i php, og så hente array'et ind?
Resultatet for hver række vil jeg gerne displaye i sit eget movieclip, så det er vel noget med at lave et movieclip, som så 'kopieres'...

Hvordan skal jeg hente dataene ind?

Henvisninger til brugbare artikler er også kærkomne.
Avatar billede _k Nybegynder
25. januar 2005 - 16:09 #1
At hente ind i Flash er ret basalt. Desværre er det ret begrænset hvad man kan slippe afsted med hvis man udelukkende vil hente tekst. Du kan nemlig hverken hente arrays, objekter eller noget som helst andet ind end lige tekst.
Derfor vil jeg anbefale xml, hvis du arbejder med større datamængder. Alternativet er at  lave nogle php-sider der leverer et givent indhold på et givent tidspunk - præcis som du er vant til, bare med Flash-syntaks. F.eks. hvis du arbejder med en produktliste, så hent hele listen ind til at starte med, gør hver produkt klikbart, og hent indformationerne om den enkelte vare, når brugeren vælger den.

Den glade Flash-syntaks skal formateres sådan her, hvis du vil have flere ting hentet ind (dvs. at det er PRÆCIS det dit php skal outputte. Ikke noget med hverken <html>, <body> eller andre alm. formateringstags - udover hvis du vil formatere teksten i en variabel):

&variabel1=tekst til var1&
&variabel2=tekst til var2&
&variabel3=tekst til var3&
osv. osv. osv.

Og det henter du så ind ved hjælp af LoadVars objektet. Kender du ikke til det og ønsker uddybning, så spørg bare løs.
Avatar billede _k Nybegynder
25. januar 2005 - 16:13 #2
..hov, fik ikke lige med, at din ide mht. hvordan du vil strukturere det inde i Flash lyder helt rigtig!

Og et link, når jeg nu er igang. Du skal ikke være i tvivl om, at jeg varmt anbefaler dig at lave det med XML. Er du ikke fortrolig med det, så er her en kærkommen lejlighed til at blive det. Har du bare en smule ambitioner ang. scripting, er det med 100% garanti noget du vil elske dig selv for at have lært (når du lige er kommet over punktet hvor du indædt hader det ;o)

http://www.actionscript-toolbox.com/xmlobject.php
Avatar billede jenslyn_s Nybegynder
07. februar 2005 - 11:18 #3
Flytning -> ingen internet... derfor lidt sent reply.

Tak, har fået styr på min streng fra php:
&navn1=foo&alder1=99&navn2=bar&alder2=88&count=2 (count = antal vars-sæt

Men hvordan klarer jeg den i flash? Det jeg kan er dette:

step = 0 //initates step-var
while (step <= count){
    // kopiere movieclip (her er jeg lidt blank!)
    step += 1;
}
Avatar billede _k Nybegynder
07. februar 2005 - 16:31 #4
Måske noget i retning af:

var mellemrum:Number = 20; // Afstanden imellem dine rækker
for(var x:Number=0;x<loadVarsObjekt.count; x++) {
  this.createEmptyMovieClip("mc" + x, 100 + x);
  with(eval("mc" + x)) {
      _x = 100;
      _y = 50 + (mellemrum*x);
      createTextField("tekstfelt_navn", 1+x,0,0,300,100);
      tekstfelt_navn.text = eval("loadVarsObjekt.navn" + (x+1));
      createTextField("tekstfelt_alder", 100+x,100,0,300,100);
      tekstfelt_alder.text = eval("loadVarsObjekt.alder" + (x+1));
  }
}
Avatar billede jenslyn_s Nybegynder
10. februar 2005 - 15:03 #5
ja, giver lidt mening, men kan ikke få det til at fungere. hente fra php med dette:
---->
function hentAlleHold(){
    this.loadVariables("http://......load_games.php", "GET");
}
hentAlleHold();
<-----
Strengen fra php er korrekt, men måske fejler jeg med dit script, da den ikke viser noget :(
Avatar billede jenslyn_s Nybegynder
10. februar 2005 - 15:12 #6
og strengen fra php ser således ud:

&navn1=joe&alder1=88&navn2=tina&alder2=56&count=2
Avatar billede _k Nybegynder
10. februar 2005 - 15:23 #7
..hov, du har vist sneget dig ud på et sidespor. loadVariables() er en outdated, bandeordsfremkaldende måde at gøre tingene på. Du skal i stedet bruge LoadVars-objektet, det er vi meget gladere for ;o)

var k:LoadVars = new LoadVars();
k.onLoad = function() {
  // her placerer du så smørren ovenfor (og udskifter "loadVarsObjekt" med "this")
}
k.load("navnetPåDinPHP.php");
Avatar billede jenslyn_s Nybegynder
10. februar 2005 - 15:31 #8
Jeg får denne fejl(én for hver entry vel...):
----->
Error: A 'with' action failed because the specified object did not exist.

Error: A 'with' action failed because the specified object did not exist.
<----
Avatar billede jenslyn_s Nybegynder
10. februar 2005 - 15:33 #9
hvis jeg fjerner with(eval.....)-tingen får jeg kun sidste resultat ud.
Avatar billede _k Nybegynder
10. februar 2005 - 15:44 #10
Ja ok, du skal så også lige fjerne this. foran createEmptyMovieClip()

..og er det ikke nok, kan du prøve at fjerne with og smide eval("mc" + x) ind foran de nedenstående properties.

Vi er ude i lidt rod med hvor tingene ligger henne. Det er op til dig hvordan du vil strukturere det, der er som sådan ikke noget i vejen med at gøre det på forskellige måder, så vil du hellere lave det med en funktion, så gør bare det. (altså kalde en funktion inde fra onLoad)
Avatar billede jenslyn_s Nybegynder
10. februar 2005 - 15:57 #11
Tak. Nu har jeg fået det til at virke. Smid et svar.
Avatar billede _k Nybegynder
10. februar 2005 - 16:01 #12
kanon :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