Ergebnis 1 bis 37 von 37

Thema: Formular - Conditional Select aus 2 Metamodels

  1. #1
    Contao-Nutzer
    Registriert seit
    30.06.2009.
    Beiträge
    112

    Standard Formular - Conditional Select aus 2 Metamodels

    Guten Morgen,

    ich hoffe ihr hatte alle ein angenehmes Weihnachtsfest und der große Trubel ist wieder vorbei.

    Ich verfolge aktuell folgenden Plan und komme leider nicht weiter, vielleicht bzw. hoffentlich hat einer von euch die passende Lösung oder auch den passenden Denkanstoß parat.

    Folgendes Szenario - angelehnt an die Beispieldatenbank von MetaModels:
    MM1 = MovieDB
    MM2 = Vorstellungstermine für die MovieDB, der Einfachheit halber nur zwei Attribute: parentID & DateTime

    An zentraler Stelle will ich jetzt ein Formular einbinden, welches zwei Selects hat.
    1. Select = Titel aus MovieDB
    2. Select = Vorstellungstermine für ausgewählten Titel aus 1. Select (conditional Select)

    Die Erweiterung Conditional Select kenne ich, und habe ich auch schon verwendet. Theoretisch müsste man diese dynamisch mit Inhalt füllen, oder einen ganz anderen Weg finden.
    Ich steh' aber bei beiden Ansätzen leider auf dem Schlauch und wäre sehr dankbar wenn jemand kurz helfen könnte.

    Vielen Dank im Voraus
    Grüße

  2. #2
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zu Deiner Frage:

    * Filter mit aktiviertem "Bei Änderung aktualisieren"
    * Select "Titel"
    * Select "Vorstellung" mit nur Zugehörige oder verbleibende ... mal mit den Einstellungen rumspielen...


    Aber - was soll anschließend passieren? was soll in die Ausgabeliste?

    m.E. wäre eine Ausgabe aller Termine sinnvoll mit Filterung nach Film - also muss in den Filter nur ein Select...

  3. #3
    Contao-Nutzer
    Registriert seit
    30.06.2009.
    Beiträge
    112

    Standard

    Danke zonky für die schnelle Antwort.

    Ich hab mich falsch ausgedrückt.
    Die Ausgabe habe ich schon so weit fertig, das hat geklappt.

    Was mit noch fehlt und was ich bräuchte ist ein Kontaktformular.

    Grüße

  4. #4
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Dj-Harem Beitrag anzeigen
    Was mir noch fehlt und was ich bräuchte, ist ein Kontaktformular.

    => Formulargenerator!?!... oder wo ist das Problem

  5. #5
    Contao-Nutzer
    Registriert seit
    30.06.2009.
    Beiträge
    112

    Standard

    Danke

    Wie kann ich den Formulargenerator mit werten aus der Datenbank füllen und dann noch zusätzlich die Selects abhängig voneinander?
    Der EFG kann Selects aus der DB, jedoch nicht abhängig voneinander.
    Und die Erweiterung Conditional Select stellt abhängige Selects bereit, jedoch nicht aus der Datenbank.

    Wahrscheinlich ist es einfacher das Conditional Select dynamisch aus MetaModels zu füttern, als den EFG anzupassen, da dieser in der aktuellen Version eh nicht mehr unterstützt wird.
    Aber genau hier hänge ich.

    Entschuldigung dass ich das nicht gleich auf den Punkt gebracht habe

    Grüße

  6. #6
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    alles irgendwie machbar - denke ich - hat aber m.E. nichts primär mit MM zu tun

    ggf. ein Posting bei "Kleinaufträgen" einstellen, wenn Du selbst das nicht hin bekommst...

  7. #7
    Contao-Nutzer
    Registriert seit
    30.06.2009.
    Beiträge
    112

    Standard

    Guten Morgen,

    "irgendwie" ist immer alles machbar
    Primär hat das natürlich nichts damit zu tun, aber es hätte ja sein können dass das jemand schon mittels MetaModels gelöst hat.

    Die Antwort habe ich befürchtet
    Trotzdem vielen Dank für deine Hilfe.

    Grüße

  8. #8
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    die Sache ist schon recht speziell und es wäre großer Zufall, wenn jemand genau das gleiche Problem gehabt hätte...

  9. #9
    Contao-Nutzer
    Registriert seit
    13.11.2014.
    Beiträge
    10

    Standard

    Ich erlaube es mir mal, diesen Beitrag hier anzuhängen, weil ich glaube, dass meine Problematik ähnlich gelagert ist. Obwohl ich mein (Ursprungs-) Projekt seinerzeit komplett "zu Fuß", d. h. mit "nacktem" PHP und MySQL erstellt habe, ist es für mich recht schwierig, mich (bei dem Versuch der Übertragung meiner Website nach Contao) vernünftig in MetaModels einzufinden. Jetzt hänge ich an dieser Stelle:

    Im Backend möchte ich mit MetaModels ein (BE-) Formular zur Erfassung von Fahrzeugen erstellen. In diesem MetaModel "Fahrzeuge" existiert dazu u. a. ein Select-Feld mit Fahrzeug-Herstellern, befüllt aus einem zweiten MetaModel "Hersteller". Sobald in dem Select-Feld "Fahrzeug-Hersteller" ein Hersteller ausgewählt wurde, soll sich in einem weiteren Select-Feld "Typ" die Auswahl auf die Typen dieses Herstellers beschränken. Diese Typen stammen aus einem dritten MetaModel, in dem die Typen aller Hersteller (natürlich auch inkl. eines Select-Feldes Hersteller) erfasst sind.

    Meine Frage: Ist dieser Fall wirklich derart speziell, dass eine Lösung meiner geschilderten Anforderung mit "Bordmitteln" nicht umsetzbar ist? Ich könnte mir nämlich eigentlich vorstellen, dass man häufiger diese Konstellation bei der Umsetzung von DB-Projekten dieser Art benötigt.

  10. #10
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    mal testen

    * reload bei Änderungen
    * Filter auf Select-Auswahl setzen, d.g. nachfolgendes Select zeigt entsprechnde Daten an, wenn "parent" ausgewählt

  11. #11
    Contao-Nutzer
    Registriert seit
    13.11.2014.
    Beiträge
    10

    Standard

    Wobei sich Deine Anleitung bzw. Anregung (u. a. "Bei Änderung aktualisieren") auf den Frontend-Bereich bezieht, richtig? Ich benötige das ganze ja im Eingabe-Formular des Backends. Da geht so was nicht, oder?

  12. #12
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    bei Checkboxen gibt es das - bei Select => mal nachsehen...

  13. #13
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    habe nachgesehen: gibt es: "[X] Absenden bei Änderungen"

  14. #14
    Contao-Nutzer
    Registriert seit
    13.11.2014.
    Beiträge
    10

    Standard

    Habe das "Absenden bei Änderungen" gefunden und entsprechend aktiviert. Das Formular wird nun auch bei Änderung des Select-Feldes neu geladen. Trotz stundenlangen Ausprobierens und Googlens funktioniert jedoch nach wie vor nicht, dass nach Auswahl des Herstellers im entsprechenden Select-Feld des (Backend-) Formulars die Typen in einem weiteren Select-Feld nur auf die Typen des gewählten Herstellers beschränkt sind. Es werden immer die Typen aller Hersteller uneingeschränkt aufgeführt. Ich hätte echt nicht gedacht, dass MetaModels so kompliziert bzw. komplex ist. Da fand ich es seinerzeit fast einfacher, mittels PHP-Code diese Szenario zu erstellen - eigentlich sollte vieles ja mittels CMS einfacher sein bzw. schneller gehen.

    Nun gut, gibt es vielleicht im Netz eine Dokumentation bzw. eine vergleichbare Lösung, so dass ich mir den Weg zu meiner Problemlösung "erlesen" bzw. abschauen kann und kann mir jemand einen entsprechenden Hinweis dorthin geben?

  15. #15
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    "CMS" und "MM" würde ich nicht per se in einen Topf werfen - ob man mit MM oder einer eigenen Erweiterung besser fährt, häng von vielen Faktoren ab => einige Hinweise hier http://metamodels.readthedocs.org/de...-anderen-tools

    Dein "zweites Select" muss natürlich einen Filter mit Werten aus dem "ersten Select" enthalten - was hast Du wo, wie eingerichtet?

    btw: hast Du nach dem Thema mal gesucht?

  16. #16
    Contao-Nutzer
    Registriert seit
    13.11.2014.
    Beiträge
    10

    Standard

    Ja, gesucht habe ich, aber leider nichts Vergleichbares für meinen Umsetzungs-Wunsch gefunden...

    Dem zweiten Select (Typ) in dem MM "Fahrzeuge" habe ich in den Attributen den Filter "Typ nach Hersteller" mit auf den Weg gegeben. Wäre das schon ausreichend, sofern der Filter korrekt eingestellt wäre? Als Filter-Abfrage würde mir Folgendes einfallen: "Zeige mir alle Typen an, welche dem in dem weiteren Select-Feld vorher ausgewählten Hersteller entspricht". Wie kann man eine solche Filter-Einstellung in MM vornehmen?

  17. #17
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von kasvolli Beitrag anzeigen
    Ja, gesucht habe ich, aber leider nichts Vergleichbares für meinen Umsetzungs-Wunsch gefunden...
    => ich hatte zwei Treffer, die mir passend aussahen - aber war wohl nicht das Richtige...

    Zitat Zitat von kasvolli Beitrag anzeigen
    Wie kann man eine solche Filter-Einstellung in MM vornehmen?
    => z.B. per "Eigener SQL"

  18. #18
    Contao-Nutzer
    Registriert seit
    13.11.2014.
    Beiträge
    10

    Standard

    Danke für die wieder sehr schnelle Antwort.

    Zitat Zitat von zonky Beitrag anzeigen
    => ich hatte zwei Treffer, die mir passend aussahen - aber war wohl nicht das Richtige...
    Waren das Links, die in diesem Thema schon weiter oben irgendwo aufgeführt sind? Ansonsten bitte ich - wenn es geht - um die entsprechenden Links. Danke!

  19. #19

  20. #20
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    494

    Standard

    @ Dj-Harem

    Bist du in dieser Sache weitergekommen? Habe gedacht ich schreibe einfach hier anstatt eine PM, dann haben alle was davon...

    Stehe genau vor der gleichen Aufgabenstellung wie du und denke, dass so ein "verknüpftes Double-Select" unerlässlich ist.
    Sonst muss man im MM2 - Fzg - Typ irgendwann mittels Select aus hunderten von Fahrzeugen auswählen, was dann nahezu unmöglich bzw. zu zeitaufwendig wird.

    Habe die Aufgabenstellung im Anhang nochmals etwas verdeutlicht.
    Angehängte Grafiken Angehängte Grafiken

  21. #21
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    @marcohe:

    1.) es fehlt (zumindest in Deiner Zeichnung) eine Verbindung zwischen MM1 und MM2 - irgendwie sollte der Golf "wissen", dass er ein "VW" ist... ;-)

    2.) im Attribut [select] für MM2 (Fahrzeugtyp) ein Filterset anwählen - in dem Filterset eine Filterregel "Eig. SQL" anlegen => im Filter kannst du mit param::post auf den Wert von [select] MM1 (Hersteller) zugreifen (Tipp: bei dem Select die Checkbox für "bei Änderung neu laden" aktivieren)

  22. #22
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    494

    Standard

    Du hast recht. Das sollte man dem Golf natürlich händisch mitteilen. D.h. Im MM2 zuerst über ein Select den Hersteller aus MM1 auswählen und dann den Typ eintragen?

    Werds mal so probieren...

  23. #23
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    zwischen MM1 und MM2 "muss" es eine Relation geben - erstmal egal, ob man VW Golf, Passat usw. zuordnet oder dem Golf und Passat das VW

    beim MM3 in der Eingabemaske sollte select aus MM2 leer sein und erst gefüllt, wenn bei select MM1 was ausgewählt (+ autom reload)

  24. #24
    Contao-Nutzer
    Registriert seit
    30.06.2009.
    Beiträge
    112

    Standard

    Guten Abend zusammen,

    auf Grund von https://bitbucket.org/thk/efg/issues...d-in-configphp war mein Conto lahmgelegt. Aus Zeitgründen konnte ich jetzt erst den Fehler suchen und beheben.

    Ich bin zwar einen Schritt weiter. Ich habe in den Templates den jeweilen Feldern eine DB-Abfrage und fülle damit die Felder. Am Ende lasse ich das Array noch wie in der Erweiterung "conditionalselectmenu" richtig aufbereiten.
    Das klappt so weit auch super.

    Ich habe jetzt noch zwei Problem.
    - Beim Absenden sagt mir das Formular dass die Werte ungültig sind. Liegt daran dass Conto die Werte nicht kennt. Eine Sicherheitsfeature welches mir aktuell Kopfschmerzen bereitet.
    - Vorbelegung "selected" von einem Eintrag im zweiten Select (ich hätte das gerne mittels GET gemacht. Beim ersten Select funktioniert das, da der Inhalt dieses Selects nicht mittels Javascript beeinflusst wird)

    Wenn dafür jemand einen Lösungsvorschlag hat, wäre ich sehr dankbar.
    Sobald das Ganze läuft, kann ich gerne eine funktionsfähig Version bereitstellen bzw. dokumentieren.

    Danke und Grüße
    Dj-Harem

  25. #25
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Dj-Harem Beitrag anzeigen
    Wenn dafür jemand einen Lösungsvorschlag hat, wäre ich sehr dankbar.
    siehe oben https://community.contao.org/de/show...l=1#post400863

  26. #26
    Contao-Nutzer
    Registriert seit
    30.06.2009.
    Beiträge
    112

    Standard

    Geht es dort nicht "nur" um die Auflistung bzw. Filterung anhand zweier Select Felder?
    Ich brauche das ganze ja in einem Formular bei welchem ich dann die ausgewählten Einträge versenden kann.

    Ich habe schon versucht eine kleine Erweiterung zu schreiben welche den loadFormField HOOK verwendet, aber das will leider nicht so klappen.

    Theoretisch müsste ich eine Erweiterung für die Erweiterung conditionalselectmenu schreiben, bei der die zu verarbeitenden Daten nicht aus dem tabletext Element kommen, sondern aus MetaModels.

  27. #27
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Dj-Harem Beitrag anzeigen
    Ich brauche das ganze ja in einem Formular bei welchem ich dann die ausgewählten Einträge versenden kann.
    o.k. - das mit dem FE-Formular hatte ich offensichtlich überlesen...

  28. #28
    Alter Contao-Hase Avatar von haendersonfox
    Registriert seit
    22.05.2012.
    Beiträge
    1.038

    Standard

    ich klinke mich hier mal ein, da ich ein ähnliches thema auf dem tisch habe…

    ich habe es innerhalb des BE mit MM folgend gelöst und habe noch ein "problem"

    mm1 = tierart
    mm2 = fleischart -> auswahl auf tierart

    somit weiß ich erstmal, welches fleisch von welchem tier kommt

    mm3 = wurstrezept -> auswahl tierart mit reload -> auswahl fleischart
    (ein select, mit einem sql-filter:
    Code:
    SELECT id FROM mm_fleisch WHERE tierart={{param::post?name=tierart1&default=1000}}
    funktionsweise: ich wähle im mm3 die tierart. seite lädt sich neu, fleischarten zum jeweiligen tier werden selectierbar.

    problem: nun muss ich - ich denke mal über den defaultwert - die eigentliche gespeicherte fleischart aus der DB holen!?
    mittels inserttag? im moment ist es so, dass die fleischart nicht gespeichert wird. da beim aufrufen des datensatzes,
    der sql-filter greift und einen POST erwartet…

    hat jemand eine idee?

    lg.

    alex
    Geändert von haendersonfox (02.03.2016 um 10:09 Uhr)

  29. #29
    Contao-Nutzer
    Registriert seit
    30.06.2009.
    Beiträge
    112

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    o.k. - das mit dem FE-Formular hatte ich offensichtlich überlesen...
    Sorry, mein Fehler :-(

    Hast du für ein FE Formular einen Lösungsansatz? :-)

    Danke

  30. #30
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    hmm..??

    * entweder für das zweite Select die Werte in ein JavaScript-Array ablegen und entsprechend "nachladen"

    * per AJAX die Werte für das zweite Select abfragen

    * für das zweite Select mehrere Selects ausgeben und per CSS ausblenden und dann entsprechend per JS einblenden

    ... so als spontane Ideen...

  31. #31
    Contao-Nutzer
    Registriert seit
    30.06.2009.
    Beiträge
    112

    Standard

    Danke für deine spontanen Ideen.

    Zitat Zitat von zonky Beitrag anzeigen
    * entweder für das zweite Select die Werte in ein JavaScript-Array ablegen und entsprechend "nachladen"
    Die Idee hatte ich auch, funktioniert so weit auch wunderbar.
    Wenn ich jedoch das Formular absende, bekomme ich bei diesem Feld "Ungültige Eingabe".
    Ich habe herausgefunden, dass Contao aus Sicherheitsgründen überprüft ob der ausgewählte bzw. abgesendete Wert intern bekannt ist.
    Ist er leider in diesem Fall natürlich nicht.

  32. #32
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    das ist ja primär ein "Contao-Problem" - ggf. im "allgemeinem Forumsbereich" mehr Glück

  33. #33
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    494

    Standard

    Frage zu folgendem SQL-Filter:

    PHP-Code:
    SELECT id FROM mm_modell WHERE hersteller={{param::post?name=hersteller&default=1000}} 
    Szenario 1:
    Modelle werden passend zum zuvor ausgewählten Hersteller angezeigt und werden über "Speichern & Schließen" auch in die DB geschrieben.
    Will ich den gespeicherten Datensatz wieder bearbeiten, ist das zuvor ausgewählte Modell nicht mehr ausgewählt.

    Szenario 2:
    Gehe ich nur auf "Speichern" wird das gewählte Modell gar nicht erst in die DB gespeichert, die Auswahl ist wieder weg...

    Jemand eine Idee wie sich das dauerhaft Speichern und das Gespeicherte auch wieder bearbeiten lässt?

  34. #34
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    ja, mit "default" kommst du an den gerade geöffneten Datensatz vom "Basis-MM" (z.B. mm_auto) nicht ran - musst die id aus der URL per get raus fischen und Subselect machen

  35. #35
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    494

    Standard

    PHP-Code:
    SELECT id FROM mm_modell WHERE IFNULL (hersteller={{param::post?name=hersteller}},hersteller
    So wird zumindest gespeichert. Ist zwar noch nicht ganz Ideal, da zuerst select "hersteller" neu gewählt werden muss bis "Modell"-Zuordnung stimmt. Aber fürs erste kann ich damit leben

  36. #36
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    den "hersteller" in dem IFNULL ersetzen als Select - wie in #34 beschrieben...

  37. #37
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    494

    Standard

    @zonky: habe leider nach durchstöbern diverser SQL-Foren immer noch nicht die passende Lösung gefunden. Hast du vllt auf die schnelle eine konkreten Lösungsvorschlag?
    In Anlage Screenshots aus phpmyadmin.
    Angehängte Grafiken Angehängte Grafiken

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •