Ergebnis 1 bis 11 von 11

Thema: Select input abhängig von anderem select input

  1. #1
    Contao-Nutzer
    Registriert seit
    11.09.2009.
    Beiträge
    55

    Standard Select input abhängig von anderem select input

    Hallo,

    ich entwickle gerade meine erste Extension. Jetzt bin ich auf ein Problem gestossen, bei dem ich mir nicht selbst helfen kann, da mir irgendwie das richtige Schlagwort fehlt.

    Ich möchte ein Select Input abhängig von einem anderen machen.

    Beispiel:

    Im ersten select Input wird das Land ausgewählt,
    dann soll der zweite select Input mit den jeweiligen Städten des Landes gefüllt werden.


    Wie mach ich so etwas?
    Hat jemand einen Tipp?

    Viele Grüße,
    AxlF

  2. #2
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.558
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du meinst so wie die Erweiterung [conditionalselectmenu] oder?
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  3. #3
    Contao-Nutzer
    Registriert seit
    11.09.2009.
    Beiträge
    55

    Standard

    Von der Beschreibung her klingt das super!

    Leider finde ich nichts dazu wie ich das verwenden kann ...

  4. #4
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.558
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von AxlF Beitrag anzeigen
    Leider finde ich nichts dazu wie ich das verwenden kann ...
    Im DCA kannst Du über den Schlüssel
    PHP-Code:
    'inputType' => 'conditionalselect' 
    auf die Funktionen der Erweiterung zugreifen. In den beiden Erweiterungen [isotope] oder [MobileSwitch] ist das beispielsweise der Fall.
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  5. #5
    Contao-Nutzer
    Registriert seit
    11.09.2009.
    Beiträge
    55

    Standard

    Hm... okay...

    Ich hab nun beide Erweiterungen installiert und mir den Quelltest angeschaut.... Ich denke ich habs einigermaßen kapiert - leider funktioniert es nicht.
    Es liegt ein Fehler im Javascript vor - zumindest sagt das Firebug...

    Gäbe es noch einen anderen Weg?

  6. #6
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.558
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von AxlF Beitrag anzeigen
    Es liegt ein Fehler im Javascript vor
    Tatsächlich? Ein JavaScript-Fehler in der "conditionalselect.js" oder?

    Die beiden von mir oben angesprochenen Erweiterungen hättest Du übrigens nicht unbedingt installieren müssen. Hab' die nur deshalb erwähnt, damit Du Dir anschauen kannst, wie dort im DCA auf diesen neuen Input-Typ zugegriffen wird. Dazu hätte es gereicht, die Archive der Erweiterungen runterzuladen und den Code anzuschauen.
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  7. #7
    Contao-Nutzer
    Registriert seit
    11.09.2009.
    Beiträge
    55

    Standard

    Also Firebug zeigt folgendes:

    Code:
    condit...lect.js (Zeile 33)
    
    event is undefined
    ....parent.addEvent('change', function(event) { this.update(event.target) }.bind(th...
    und die Zeile aus der js Datei vollständig

    Code:
    		
    // Register event
    this.parent.addEvent('change', function(event) { this.update(event.target) }.bind(this));
    Ich hatte natürlich vorher die minified Version mit der src Datei ersetzt. Aber Anfangen kann ich leider damit nicht so viel... Mein JS ist nicht das beste :/


    Die MobileSwitch Extension hatte ich noch installiert um an den Quelltest zu kommen, beim Isotope bin ich auf die Idee gekommen im Git Repository den Quelltext anzuschauen.

    Im Prinzip wird ja aber nur der "inputType" Parameter wie von dir beschrieben auf "conditionalselect" gesetzt und im 'eval' Array der wert conditionField mit dem Feldnamen gefüllt.

    Dann müsste ja schon was passieren - aber ausser Fehlermeldung kommt nix...

  8. #8
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.558
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Wird denn im Seitenquelltext die Initialisierung über ein <script>-Element mit dem addEvent und "ConditionalSelect(...)" eingefügt?
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  9. #9
    Contao-Nutzer
    Registriert seit
    11.09.2009.
    Beiträge
    55

    Standard

    Ja, der wird generiert:

    Code:
      <h3><label for="ctrl_City">City</label></h3>
      <select name="City" id="ctrl_City" class="tl_select"><option value="a">Augsburg</option><option value="b">Erlangen</option><option value="c">Hannover</option><option value="d">Wiesbaden</option></select>
    <script type="text/javascript">
    <!--//--><![CDATA[//><!--
    window.addEvent('domready', function()
    {
    	new ConditionalSelect('ctrl_City', 'ctrl_Country', JSON.decode('[{"value":"a","label":"Augsburg"},{"value":"b","label":"Erlangen"},{"value":"c","label":"Hannover"},{"value":"d","label":"Wiesbaden"}]'), JSON.decode('[null]'));
    });
    //--><!]]>
    </script>

    Ok - so ganz hab ichs noch nicht kapiert, wie genau ich den Wert aus dem ersten Input Feld abrufe. Ich gebe hier eigentlich nur ein Standard-Array aus der Callback-Funktion zurück.

    Das Auswahlfeld zeigt aber nur den "-" vom eval wert 'includeBlankOption' => true ...

  10. #10
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.558
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von AxlF Beitrag anzeigen
    Ja, der wird generiert
    Okay, alles klar. Ich müsste mir die ganze Sache auch erst näher ansehen, um hier Genaueres sagen zu können.
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  11. #11
    Contao-Nutzer
    Registriert seit
    11.09.2009.
    Beiträge
    55

    Standard

    Wie ist das eigentlich - wie kann ich den ausgewählten Wert des ersten Input Feldes dem callback-übergeben, oder im Callback auslesen?

    Und mach ich die Einbindung eigentlich richtig? Oder hab ich was übersehen?

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
  •