Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-07-2004, 21:15   #1 (permalink)
Neuer User
 
Benutzerbild von destroy90210
 
Registriert seit: Feb 2002
Ort: wien
Beiträge: 458
Question php, geht array ins flash und wie genau verwenden ??

hi,

also ich habe eine mysql datenbank wo ich per php nun die daten auslese mal

PHP-Code:
<?
include("connectDB.inc");

$sql "SELECT * FROM kategorien";
$result doSQL($sql);
while (
$zeile mysql_fetch_row($result)){
  
  echo 
$zeile;

}
?>
leider ist ja zeile noch ein array.... wie kann ich das am besten lösen in string machen also so ?? oder gibts da andere bessere wege ???

PHP-Code:
<?
  
  stringZeile
=$zeile[0].$zeile[1];
  echo 
"&kategorien=$stringZeile";

}
?>

also ich habe schon einiges geschaut und das nun mit LoadVars() versucht aber leider wird nix angezeigt in nem textfeld das kat heißt also als variablenNamen hat

Code:
on (release) {
	var kategorien = new LoadVars();
	kategorien.load("../php/getKategorien.php");
	kategorien.onLoad = function(erfolg) {
		if (erfolg == true) {
			trace("daten geladen");
		} else {
			trace("lade fehler!");
		}
	};
}
aber jetzt habe ich echt keinen plan wie das weiter gehen soll.
das php script läuft ja in der while schleife doch einige mal durch und sendet er dann jedes mal die variable gleich an flash ?? muss ich dann eigentlich immer einen anderen variablen namen verwenden das da nix überschrieben wird ??

mfg,
destroy90210

Geändert von destroy90210 (01-07-2004 um 22:05 Uhr)
destroy90210 ist offline   Mit Zitat antworten
Alt 02-07-2004, 12:18   #2 (permalink)
wissbegierig
 
Registriert seit: Nov 2003
Ort: Hamburg
Beiträge: 206
Es gibt in PHP eine schöne Funktion, die sich "implode" nennt, damit kannst Du ein Array in einen String umwandeln.

z.B.
PHP-Code:
$deinArray = array("eins","zwei","drei","vier","fuenf");
$inString implode(",",$deinArray); 
Die Ausgabe von $inString würde so aussehen:
"eins,zwei,drei,vier,fuenf"

Ausgabe für Flash:
PHP-Code:
$forFlash "&Daten=".$inString;
echo 
$forFlash
Weil Du ja jetzt einen String an Flash sendest und man mit dem nicht so gut arbeiten kann, wie mit einem Array, kannst Du den von PHP erhaltenen String wieder in ein Array umwandeln, könnte so aussehen:

PHP-Code:
MovieClip.prototype.dataLoader = function(){
lader=new LoadVars();
lader.onLoad=function(geladen){
if(
geladen){
_root.phpDaten = new Array();
_root.phpDaten lader.Daten.split(",");    
_root.DeineTextFeldVariable _root.phpDaten[0];
delete this.onLoad;
}                
}
lader.load("phpscriptname.php");

Auf Deinen Button:
PHP-Code:
on(release){
dataLoader();

PIXIX ist offline   Mit Zitat antworten
Alt 02-07-2004, 18:22   #3 (permalink)
Neuer User
 
Benutzerbild von destroy90210
 
Registriert seit: Feb 2002
Ort: wien
Beiträge: 458
hy rießen THX werds gleich morgen ausprobieren

mfg,
destroy90210

thx funzt alles super habs grade ausprobiert

Geändert von destroy90210 (03-07-2004 um 08:41 Uhr)
destroy90210 ist offline   Mit Zitat antworten
Alt 03-07-2004, 09:33   #4 (permalink)
Neuer User
 
Benutzerbild von destroy90210
 
Registriert seit: Feb 2002
Ort: wien
Beiträge: 458
ok eine frage habe ich noch...

also ich habe die funktion nur ein klein wenig verändert das ich sie allg. einsetzten kann und zwar so

PHP-Code:
MovieClip.prototype.dataLoader = function(choose) {
    
lader = new LoadVars();
    
lader.onLoad = function(geladen) {
        if (
geladen) {
            
trace("geladen");
            
_root.dataArray = new Array();
            
_root.dataArray lader.phpData.split("||");
            return 
_root.dataArray;
            
delete this.onLoad;
        }
    };
    
lader.load("../php/getData.php?DB="+choose);
}; 
und das steh auf meinem MC drauf
PHP-Code:
on (release) {
    
_root.katArray dataLoader("kategorien");
    
_root.TFkategorien _root.katArray[0];


es hat alles nbisher super gefunzt das mit dem choose und so, aber jetzt wo ich das mit return versucht habe bekomme ich immer leider ein undefined ins textfeld. Warum ?? was mche ich da falsch ??

hier noch das PHP zur vollständigkeitshalber

PHP-Code:
<?
include("connectDB.inc");

$sql "SELECT * FROM $DB";
$result doSQL($sql);
while (
$zeile mysql_fetch_row($result)){
  
$eineZeile=$zeile[0].$zeile[1];
  
$alleZeilen.="$eineZeile||";
}
$forFlash "&phpData=".$alleZeilen;
echo 
$forFlash;

?>

Geändert von destroy90210 (03-07-2004 um 09:35 Uhr)
destroy90210 ist offline   Mit Zitat antworten
Alt 03-07-2004, 09:59   #5 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
deine zuweisung kommt zu früh.
warrantmaster ist offline   Mit Zitat antworten
Alt 03-07-2004, 10:02   #6 (permalink)
Neuer User
 
Benutzerbild von destroy90210
 
Registriert seit: Feb 2002
Ort: wien
Beiträge: 458
hmmm
wie genau ? wo muss ich sie etzten und welche zuweisung meinst du eigentlich so ??

es hat ja alles gepasst bis ich das mit dem return versucht habe, da ist halt irgendwas falsch...


mfg,
destroy90210
destroy90210 ist offline   Mit Zitat antworten
Alt 03-07-2004, 11:48   #7 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
du versuchst das onload zu überlisten

PHP-Code:
 on (release) {
    
_root.katArray dataLoader("kategorien");//<---wartet jetzt auf das return, das gibt es aber erst zeitversetzt, und zwar nachdem die daten in flash sind
    
_root.TFkategorien _root.katArray[0];//<---darum ist das hier zu früh da

warrantmaster ist offline   Mit Zitat antworten
Alt 03-07-2004, 12:07   #8 (permalink)
Neuer User
 
Benutzerbild von destroy90210
 
Registriert seit: Feb 2002
Ort: wien
Beiträge: 458
hmm ok
und was kann ich dagegen machen ??
weil wenn ich das return rausgebe also ausserhalb vom onload kann es ja sein das er bei grossen datenmengen ja nicht alles mitschickt mit dem return...

irgendwie stelle ich ma das grade alles ur kompliziert vor

hab das jetzt mal so versucht geht aber auch ned

PHP-Code:
on (release) {
    
_root.katArray dataLoader("kategorien");
    
this.onEnterFrame = function() {
        if (
_root.geladen) {
            
_root.TFkategorien _root.katArray[0];
            
delete this.onEnterFrame;
        }
    };

wie kann man das lösen das prob ??

nachtrag:
oh hoppala das prob ist ja das katArray das da das zu früh zugewiesen wird ok da habe ich echt keinen plan wie man das machen kann ....

Geändert von destroy90210 (03-07-2004 um 12:12 Uhr)
destroy90210 ist offline   Mit Zitat antworten
Alt 03-07-2004, 12:22   #9 (permalink)
Neuer User
 
Benutzerbild von destroy90210
 
Registriert seit: Feb 2002
Ort: wien
Beiträge: 458
okj habs jetzt geshcafft das es geht aber ich finde das irgendwie nicht sehr elegant...

hat wer vielleicht bessere lösungsvorschläge ?? ich hätte das schon gerne irgendwie mit return geschafft....
PHP-Code:
on (release) {
    
dataLoader("kategorien");
    
_root.TFkategorien "lade Daten...";
    
this.onEnterFrame = function() {
        if (
_root.dataArray != "") {
            
_root.katArray =_root.dataArray;
            
_root.TFkategorien _root.katArray[0];
            
delete this.onEnterFrame;
        }
    };

PHP-Code:
MovieClip.prototype.dataLoader = function(choose) {
    
lader = new LoadVars();
    
lader.onLoad = function(geladen) {
        if (
geladen) {
            
trace("geladen");
            
_root.dataArray = new Array();
            
_root.dataArray lader.phpDaten.split("||");
            
//return _root.dataArray;
            
delete this.onLoad;
        }
    };
    
lader.load("../php/getData.php?DB="+choose);
}; 

Geändert von destroy90210 (03-07-2004 um 12:24 Uhr)
destroy90210 ist offline   Mit Zitat antworten
Alt 03-07-2004, 14:04   #10 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
hm...das nützt doch nunmal alles nix, du mußt halt auf das onload warten,
egal, ob du onenterframe, interval oder watch wartest.
dein return kommt halt erst, wenn geladen ist. so ganz verstehe ich das problem dabei auch nicht, übergib doch einfach in die funktion eine variable, der du bei onload eine aktion zuweist.

PHP-Code:
bt.onPress = function() 
{
    
dataLoader("test.txt"zeige)
};

zeige=function(x)
{
    
trace(x)
}

dataLoader = function(choosemyvar
{
    
lader = new LoadVars()
    
lader.onLoad = function(geladen
    {
        if (
geladen
        {
            
dataArray this.daten.split("||");
            
myvar(dataArray)
        }
    };
    
lader.load(choose)//../php/getData.php?DB="+choose);
}; 
warrantmaster ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele