Dyn. Tabelle

Harlikin

Grünschnabel
Hi,

sorry das ich mit sowas nerve, werd aber auch nach stunden suchen nicht schlau...
Ich bekomme es einfach nicht hin das mir 3 Datensätze angezeigt werden.... wo liegt der fehler ! :confused:



Ich habe eine data.txt mit inhallt:

vorname=blablabla&name=auch_blablabla&tel=und_erst_recht_blablabla
vorname=JOsh&name=Mc+Ghee&tel=08115554740
vorname=Verena&name=Herrmann&tel=9598812

Code:
// ----------------------------------------------------------- //
// Hier wird eine TXT-Datei mit diversen Variablen eingelesen  //
// ----------------------------------------------------------- //
  loadVariablesNum("data.txt",0);
// ----------------------------------------------------------- //
// Hier wird der MC mit dem Instanznamen "rechteck" dupliziert //
// ----------------------------------------------------------- //
for (i=0; i<=rows; i++) {
	duplicateMovieClip (_root.zeile, "zeile"+i, i);
	_root["zeile"+i]._x = _root.zeile._x;
	_root["zeile"+i]._y = _root.zeile._y+(53*i);
}

Ich hoffe ihr könnt mir helfen.

Greets Josh
 
Hi,

Du kannst nicht mehrmals den selben Variablennamen (vorname) verwenden. Nummerier die Variablen durch, und lese sie der Reihe nach aus:
Code:
vorname1=blablabla&name1=auch_blablabla&tel1=und_erst_recht_blablabla&
vorname2=JOsh&name2=Mc+Ghee&tel2=08115554740&
vorname3=Verena&name3=Herrmann&tel3=9598812
(ausserdem müssen alle Variablen durch & getrennt werden, das hast Du jeweils nach den Telefonnummern vergessen)

Auslesen:
PHP:
var lv = new LoadVars();
lv.onLoad = function() {
  var count = 0;
  for (var i in this) {
    if (typeof(this[i])) {
      if (i.indexOf("vorname") == 0) {
        var row = _root.attachMovie("zeile", "zeile" + count, count);
        row._x = 50; // X-Position
        row._y = 50 + (count * 53); // Y-Position
        count ++;
        row.fname.text = this[i];
      }
      if (i.indexOf("name") == 0) {
        row.nname.text = this[i];
      }
      if (i.indexOf("tel") == 0) {
        row.tel.text = this[i];
      }
    }
  }
}


lv.load("meinedaten.txt");

Gruß

P.S.:
wo liegt der fehler !
Ist das eine Aussage? ^^
.
 
Zuletzt bearbeitet:
Hi Datic,

danke für deine Antwort, aber ich komm immer noch nicht damit klar, ich bin leider noch nicht so fit um mit "Klassen" zu arbeiten. (das sind doch klassen?)

Ich habe deine Lösung mal reingepastet aber da taucht nichts auf... Hab die Daten auch richtig formatiert wie du gemeint hast.... Das ich nichts sehe liegt warscheinlich auch daran das ich den Textfeldern neue VAR Namen geben muss ? Ich hab sie ja nur "vorname" , "name" und "tel" genannt. Muss ich diese nicht auch mit umbenennen in der schleife? Wenn ja wi ! :confused: :confused: :confused:

:confused:

Code:
// ----------------------------------------------------------- //
// Hier wird eine TXT-Datei mit diversen Variablen eingelesen  //
// ----------------------------------------------------------- //
  loadVariablesNum("data.txt",0);
// ----------------------------------------------------------- //
// Hier wird der MC mit dem Instanznamen "rechteck" dupliziert //
// ----------------------------------------------------------- //
for (i=0; i<=rows; i++) {
	duplicateMovieClip (_root.zeile, "zeile"+i, i);
	_root["zeile"+i]._x = _root.zeile._x;
	_root["zeile"+i]._y = _root.zeile._y+(53*i);
}
n = rows // ------ Schlußanweisung ------ //
stop ();
 
Hi,

1. Das sind keine Klassen, sondern eine Funktion.

2. Das Beispiel war ja nicht komplett. Es setzt z.B. voraus, dass sich der MovieClip "zeile" in der Bibliothek befindet und auch unter diesem Bezeichner zum Export freigegeben ist.

3. Deine Variable "rows" sehe ich nirgendwo definiert, wie willst Du wissen, wie viele Zeilen Du hast?

4. Wenn alle Variablen den gleichen Namen haben, wie willst Du herausfinden, welcher Vornale z.B. in welche Zeile gehört?

5. Statt mit Textfeldvariablen arbeite lieber mit den Instanznamen der Textfelder und ihrer .text-Eigenschaft.

6. Mein Beispiel war auch in sofern nicht komplett, als dass es für jede Variable eine neue Zeile anlegt - sprich: Für Dateisätze mit mehreren Einträgen (Vorname, Nachname, Telefon) ist eine kleine Änderung nötig (wenn Du keine XML-Datei verwenden willst, was m.E. in diesem Fall um einiges praktischer wäre).
EDIT: Das habe ich in meinem ersten Posting nun allerdings korrigiert.

7. In Deiner Vorlage sind noch einige kleinere Fehler, auf die ich nicht weiter eingehen will: So solltest Du auch beim Verwenden von loadVariablesNum zuerst warten, bis die Datei tatsächlich geladen sind. Diese Arbeit macht Dir das LoadVars-Objekt mit seinem onLoad-Handler um einiges einfacher!. ;)

Im Anhang findest Du eine Beispieldatei mit Deinen Datensätzen.

Gruß
.
 

Anhänge

  • zeilen.zip
    10 KB · Aufrufe: 19
Zuletzt bearbeitet:
Hi Datic,

danke für deine Korespondenz. Ich hab mal die hilfe durchgeackert aber ich werd nicht ganz schlau aus dem Aufbau. Das problem ist das er die Daten durcheinander anzeigt und die letzten 2 Datensätze ganz raus lässt. Wie würde denn eine xml lösung ausschaun? Ich muss das am ende sowieso alles Datenbank basierend machen... in php mysql bin ich wesendlich fitter als in Flash... xml kommt dem warscheinlich wesendlich näher...

Danke für deine Hilfe..
Josh
 
Hi,

ja, mit einem XML-Objekt geht das wesentlich eleganter, zumal Du mit PHP prima ein solches generieren und an Flash senden kannst (gib als Ladequelle für das XML-Objekt einfach Dein PHP-Script an und gib das, was nun in der XML-Datei steht einfach mit echo() aus).

Zu den Problemen: Ich habe das gestern einfach so runtergehackt, ohne es wirklich zu testen. Wenn ich das LoadVars-Objekt so durchlaufe, werden die Variablen von hinten nach vorne abgearbeitet; ich müsste also das Anlegen der Zeilen umdrehen.. ;)

Naja, anbei mal ein Beispiel mit einer XML-Datei.

Gruß
.
 

Anhänge

  • zeilen_xml.zip
    10,4 KB · Aufrufe: 18
Hi Datic,

danke für deine Hilfestellung... Ich bin jetzt um einiges schlauer, habs auch schon eingebaut, aber jetzt hakts schon wieder.....

Wenn ich es richtig verstanden habe wird ja der MC "Zeile" auf der Hauptleiste "_root", attached...
Ich wollte jetzt das ganze aber in einen MC packen und dann wird mir nichts mehr angezeigt.. ;o(

aus
Code:
row[i] = _root.attachMovie("zeile", "row" + i, i);

habe ich
Code:
row[i] = this.Frame.attachMovie("zeile", "row" + i, i);
:confused:

gemacht. Aber das ists anscheinend nicht....

Falls du dich fragst warum das ganze, es geht darum ein "Fenster(MC)" mit daten gefüllt wird und dann von der Seite "reingetweent" wird. Wenn ich nach deinem Beispiel gehe bleibt die ausgabe ja Fest und kann nicht mit "rein oder raus" getweent werden... daher gehe ich davon aus dass das ja in einen MC verpackt werden muss den ich dann "verschieben kann....


LG Josh
 
Zuletzt bearbeitet:
Hi,

wo befindet sich den der MC "Frame"? Auch dort, wo das Script steht? Hast Du dem Clip auch einen Instanznamen gegeben, oder ist das nur der Bezeichner?

Anbei ein Beispiel mit einem Containerclip namens "Frame". Ich habe mal eine Drag-Aktion auf den Frame gelegt, damit man auch sieht, dass man das prima verschieben kann. ;)

Gruß
.
 

Anhänge

  • zeilen_xml_fr.zip
    10 KB · Aufrufe: 18
Super ! Datic,

der fehler war, das ich das Skript imme mit in den MC geschrieben habe... warum das eigendlich net dann? Ist es weil Flash aus einem MC heraus nicht auf die Bibliothek zugreifen kann oder wie?

Danke vielmals !
 
[..] das ich das Skript imme mit in den MC geschrieben habe... warum das eigendlich net dann [..]

Bitte achte auf korrekte Rechschreibung und Ausdrucksweise, danke!

Ansonsten: Natürlich kannst Du von überall aus auf die Bibliothek zugreifen, aber wenn Du das Script in dem MovieClip "Frame" hattest, wäre die richtige Adressierung:
PHP:
... this.attachMovie( ...
und nicht "this.Frame". Grund: Wenn Du Dich schon im "Frame" befindest, verweist "this" auch darauf. ;)

Gruß
.
 

Neue Beiträge

Zurück