FormBuilder - Abhängigkeiten - Laden von verschiedenen Daten für das nächste Feld

  • Ich habe nun eine Form-Builder-Klasse die als erstes ein bestimmtes "System" eines Universums haben muss als Wert, damit danach dann die gesamten Planeten nur aus diesem System angezeigt werden in einem extra SelectFormField. Danach, wenn der entsprechende Wert / das entsprechende System ausgewählt wurde, kommt das Planeten-SelectFormField.

    Wie bekomme ich denn nun dort NUR die Planeten aus dem entsprechenden System dort hinein?

    In der Datenbank der Planeten ist eine extra Spalte mit "parentSystemID". Hieran kann man erkennen, dass der Planet zu einem entsprechenden System gehört.

    Wie bekomme ich es hin, dass die Planeten in der Select-Liste entsprechend des System-Feldes "geladen und angeboten" werden.

    Hier mal die entsprechende Form:


    Ich habe schon versucht, die entsprechende SARPlanet::getAllPlanetsForHelp($parentSystemID); einzufügen, nur wie bekomme ich dort das ausgewählte VALUE aus dem vorherigen Select-Form-Field hinein?

    Und dann ist die Frage, wie muss das Array aussehen, dass von der Funktion dann wieder zurück gegeben wird... So:

    $data[planetID = 1] => planetID ['1']

    => planetName ['Erde']

    => parentSystemID ['3']

    oder wie muss das aussehen?

    itsmeJAY du kannst mir bestimmt hier auch wieder direkt eine korrekte und ausführliche verständliche Antwort geben, oder? Vielen Dank schon mal... Wie immer.... ;)

  • Hallo,

    ehrlicherweise ließt sich das - zusammen mit deinem vorherigen Thread - alles sehr verwirrend, da du von einem Fehler in den nächsten läufst und keinem mitteilst, ob mit der Hilfestellung Fehler 1 behoben wurde.

    Und dann ist die Frage, wie muss das Array aussehen, dass von der Funktion dann wieder zurück gegeben wird... So:

    Hast Du Dir denn die Klassen bzw. das Interface mal angesehen?

    * If nested options are passed, the given options must be a array or a
    * callable returning an array. Each array value must be an array with the
    * following entries: `depth`, `label`, and `value`.

    Beispiel:

    PHP
    $nestedOptions[] = [
                                'depth' => $pageNode->getDepth() - 1,
                                'label' => $pageNode->name,
                                'value' => $pageNode->identifier,
                            ];

    Ich habe schon versucht, die entsprechende SARPlanet::getAllPlanetsForHelp($parentSystemID); einzufügen, nur wie bekomme ich dort das ausgewählte VALUE aus dem vorherigen Select-Form-Field hinein?

    Du könntest es so probieren:

    PHP
    $previousField = $this->form->getNodeById('previousField');
    
    wcfDebug($previousField->getValue());

    Ich bin mir wirklich unsicher, inwieweit dir das hilft, da ich den Überblick etwas verloren habe ;)

  • ehrlicherweise ließt sich das - zusammen mit deinem vorherigen Thread - alles sehr verwirrend, da du von einem Fehler in den nächsten läufst und keinem mitteilst, ob mit der Hilfestellung Fehler 1 behoben wurde.

    Hi itsmeJAY also in diesem 1. Thread ging es um eine andere Seite und da habe ich den letzten Stand mitgeteilt, dass es bei dem Editieren noch einen nicht erkennbaren Fehler gibt:

    MDMAN
    April 20, 2024 at 9:50 AM

    In diesem Thread geht es nun um eine andere Seite, wo viel mehr Felder auftauchen sollen.

    Hast Du Dir denn die Klassen bzw. das Interface mal angesehen?

    Ja habe ich gemacht, allerdings habe ich es anscheinend nicht ganz verstanden wie es funktioniert. Darum habe ich nach tagelangem Testen nun hier einen Thread geschrieben, damit man mir helfen kann und damit mir gezeigt wird an einem Beispiel, wie ich das gewünschte umsetzen kann.

    Und ja, ich bin kein Experte. Habe keine Informatik in der Schule oder im Studium gehabt. Alles was ich weiß, habe ich mir selbst beigebracht, darum ist mein Kenntnisstand in PHP und MySQL zwar gut, aber für diese sehr umfangreichen Klassen im WSC noch nicht ausreichend genug, dass ich es ohne Hilfe schaffen kann.

    Bin halt auf dem Level eines erfahrenden Anfängers. ;)

    Du könntest es so probieren:
    PHP $previousField = $this->form->getNodeById('previousField'); wcfDebug($previousField->getValue());

    Ich bin mir wirklich unsicher, inwieweit dir das hilft, da ich den Überblick etwas verloren habe

    Das habe ich schon probiert. Doch meine IDE sagt immer, dass wäre nicht möglich an der Stelle einzufügen.

    Wo genau kann ich denn diese Zeile

    Code
    $previousField = $this->form->getNodeById('previousField');

    einfügen, ohne dass es einen Fehler gibt?

    Hier noch mal der Ausschnitt, den ich bis dato habe:

    Wo kann ich denn dort die entsprechende Zeile einfügen?

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!