softsolution
Grünschnabel
Hallo,
ich habe ein Problem mit der Nutzung eines Klassen-Arrays, vielleicht kann mir jemand helfen, das zu lösen.
Gemäß Anhang soll mein Code folgendermaßen funktionieren:
Nach erfolgreichem Login über die Funktion login() werden die Member des Klassen-Arrays $data mit ganz bestimmten Daten gefüllt, die dann der View myView1 übergeben werden. Der Anwender kann diese Daten entsprechend ändern und werden dann via Form-Submit an die Funktion getData() geschickt, die damit entsprechende Datensätze aus einer Datenbank sucht.
Danach werden myView1 mit den durch den Anwender zuvor eingegebenen Daten und myView2 mit den gefundenen Datensätzen angezeigt.
Der Anwender hat jetzt die Möglichkeit, Datensätze zu ändern. Das geschieht mit einem Button, der die Funktion chgData() im Controller aufruft. Nun bin ich davon ausgegangen, dass das Klassen-Array noch mit den Daten, die beim Aufruf der Funktion getData() vorhanden waren, gefüllt ist. Leider musste ich aber feststellen, dass das Array mit den Daten, die der Constructor ins Array geschrieben hat, befüllt ist.
Ich kann mir dieses Verhalten nur erklären, dass der Controller mit jedem Aufruf einer seiner Funktionen neu instanziert wird, sprich, die Klassenvariable immer wieder neu erzeugt wird. Ist das zutreffend ?
Wie kann ich eine „Supervariable“ erzeugen, die die Daten nicht vergisst ? Momentan fällt mir nur ein, diese Daten in das Session-Array zu schreiben. Vielleicht hat ja jemand noch eine smartere Idee.
ich habe ein Problem mit der Nutzung eines Klassen-Arrays, vielleicht kann mir jemand helfen, das zu lösen.
Gemäß Anhang soll mein Code folgendermaßen funktionieren:
Nach erfolgreichem Login über die Funktion login() werden die Member des Klassen-Arrays $data mit ganz bestimmten Daten gefüllt, die dann der View myView1 übergeben werden. Der Anwender kann diese Daten entsprechend ändern und werden dann via Form-Submit an die Funktion getData() geschickt, die damit entsprechende Datensätze aus einer Datenbank sucht.
Danach werden myView1 mit den durch den Anwender zuvor eingegebenen Daten und myView2 mit den gefundenen Datensätzen angezeigt.
Der Anwender hat jetzt die Möglichkeit, Datensätze zu ändern. Das geschieht mit einem Button, der die Funktion chgData() im Controller aufruft. Nun bin ich davon ausgegangen, dass das Klassen-Array noch mit den Daten, die beim Aufruf der Funktion getData() vorhanden waren, gefüllt ist. Leider musste ich aber feststellen, dass das Array mit den Daten, die der Constructor ins Array geschrieben hat, befüllt ist.
Ich kann mir dieses Verhalten nur erklären, dass der Controller mit jedem Aufruf einer seiner Funktionen neu instanziert wird, sprich, die Klassenvariable immer wieder neu erzeugt wird. Ist das zutreffend ?
Wie kann ich eine „Supervariable“ erzeugen, die die Daten nicht vergisst ? Momentan fällt mir nur ein, diese Daten in das Session-Array zu schreiben. Vielleicht hat ja jemand noch eine smartere Idee.