Ergebnis 1 bis 8 von 8

Thema: Dynamische Anzahl an dca Feldern im FE

  1. #1
    Contao-Nutzer Avatar von JanFriebe
    Registriert seit
    14.08.2016.
    Ort
    Gladbeck
    Beiträge
    41

    Standard Dynamische Anzahl an dca Feldern im FE

    Hallo zusammen,

    mein aktuelles Problem betrifft die dynamische Anzahl an dca Feldern im FE.
    Problem ist folgendes, ich habe ein array in dem Werte enthalten sind. Bsp.:

    Diese Daten kommen aus der DB und sollen als value angezeigt werden.
    PHP-Code:
    array(3) {
      [
    0]=>;
      
    string() "Kino 1; Hensel und Gretel; Sitz 6; Reihe 3"
      
    [1]=>;
      
    string() "Kino 2; Hexjäger; Sitz 9; Reihe 4)"
      
    [2]=>;
      
    string() "Kino 3; Testfilm; Sitz 1; Reihe 2"

    Nun habe ich mir 4 Felder gebaut , die einmal das Kino, den Film, den Sitzplatz und die Reihe ausgeben.

    Nun habe ich das Problem das ich aber pro array 4 Einträge habe und diese natürlich auch alle ausgeben muss im FE. Sprich ich bräuchte 16 dca Felder.

    Auf den ersten Blick scheint eine Schleife die erste wahl, jedoch funktioniert das nicht so einfach.

    Konkrete Frage, wie iteriere ich sauber und funktionell über das array mit den jeweil 4 Einträgen, damit mir eine dynamische Anzahl an Feldern im FE generiert werden ?


    Danke und Gruß Jan
    Gruß
    Jan

  2. #2
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du kannst aus dem String ein Array bilden
    PHP-Code:
    foreach($myArray as $key => $value)
    {
      
    dump($value);
      
    $value explode('; '$value);
      foreach(
    $value as $key => $value)
      {
        
    dump($value);
      }

    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  3. #3
    Contao-Fan Avatar von Ainschy
    Registriert seit
    24.06.2009.
    Ort
    Wenden
    Beiträge
    796
    Partner-ID
    5666
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich habe das mit der Erweiterung Haste erreicht: https://contao.org/de/erweiterungsli...140009.de.html

    Durch ein eigenes Modul kannst du mittels Haste das Formular so erstellen wie du es brauchst, inkl. Weiterverarbeitung etc.

    Wenn du es selbst programmieren kannst geht das ganz fix.

  4. #4
    Contao-Nutzer Avatar von JanFriebe
    Registriert seit
    14.08.2016.
    Ort
    Gladbeck
    Beiträge
    41

    Standard

    Danke für die Kommentare,

    leider kommt für mich keine Extension in betracht. Daher möchte ich weiter auf Andreas Kommentar eingehen.
    Klar, ich kann den String in ein Array umwandeln, nur was habe ich davon und wie hilft es mir weiter ?

    Das haupt Problem besteht dann doch immer noch, das ich irgendwie über die dca Felder iterieren muss oder nicht ?

    Als Bsp. hier mal eins meiner dca Felder :

    PHP-Code:
        $arrFields["kino"] = array
                (
                    
    'label' => 'kino',
                    
    'name' => 'kino',
                    
    'inputType' => 'text',
                    
    'value' => "",
                    
    'eval' => array('readonly' => true)

                ); 

    Gruß
    Jan
    Geändert von JanFriebe (21.10.2016 um 08:43 Uhr)
    Gruß
    Jan

  5. #5
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich verstehe hier nicht, was du gemacht hast und was du vorhast. Geht es um Formulare? Hast du ein Modul programmiert? BE-Modul? FE-Modul? Steht die BE-Eingabemaske?
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  6. #6
    Contao-Fan Avatar von Ainschy
    Registriert seit
    24.06.2009.
    Ort
    Wenden
    Beiträge
    796
    Partner-ID
    5666
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Vllt. beschreibst du mal genauer was du vor hast.

  7. #7
    Contao-Nutzer Avatar von JanFriebe
    Registriert seit
    14.08.2016.
    Ort
    Gladbeck
    Beiträge
    41

    Standard

    Es ist selbst geschriebenes FE Modul. Im Frontend habe ich ein starres Formular was aus 4 Feldern besteht vom Typ text.

    Dieses Formular soll mit den oben genannten Werten, die ich zuvor aus der Datenbank selektiere gefüllt werden.
    Das Formular besteht aus starren 4 dca Feldern. Ich habe 16 Einträge in der Datenbank. Diese 4 Felder müssten sich also 3 mal wiederholen
    damit jeder Wert Platz findet.

    Skizziert wie es sein soll.:

    1. Kino
    value=1

    2.Film
    value=Hensel u. Gretel

    3.Sitz
    value=6

    4.Reihe
    value=3

    ----------

    1. Kino
    value=3

    2.Film
    value=Testfilm

    3.Sitz
    value=1

    4.Reihe
    value=3

    ----------

    1. Kino
    value=2

    2.Film
    value=Hexenjäger

    3.Sitz
    value=9

    4.Reihe
    value=4




    Momentan:

    1. Kino
    value=

    2.Film
    value=

    3.Sitz
    value=

    4.Reihe
    value=


    Ich hoffe es ist klarer geworden
    Geändert von JanFriebe (21.10.2016 um 11:53 Uhr)
    Gruß
    Jan

  8. #8
    Contao-Fan Avatar von Ainschy
    Registriert seit
    24.06.2009.
    Ort
    Wenden
    Beiträge
    796
    Partner-ID
    5666
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von JanFriebe Beitrag anzeigen
    Es ist selbst geschriebenes FE Modul. Im Frontend habe ich ein starres Formular was aus 4 Feldern besteht vom Typ text.

    Dieses Formular soll mit den oben genannten Werten, die ich zuvor aus der Datenbank selektiere gefüllt werden.
    Das Formular besteht aus starren 4 dca Feldern. Ich habe 16 Einträge in der Datenbank. Diese 4 Felder müssten sich also 3 mal wiederholen
    damit jeder Wert Platz findet.
    Also arbeitest du mit einem eigenen Modul. Wenn du nun noch Haste dazu nimmst bist du so gut wie fertig.

    Hier ein Code Beispiel für den Aufbau in einem eigenen Module.

    Weitere Info's zu Haste/Form auf https://github.com/codefog/contao-ha...s/Form/Form.md

    Code:
    // Formular aufbauen
    $objForm = new \Haste\Form\Form('FORM_ID','POST', function ($objHaste)
    {
        return \Input::post('FORM_SUBMIT') === $objHaste->getFormId();
    });
    
    $objForm->addFormField('suchbegriff',array(
        'label'         => 'Suchbegriff',
        'inputType'     => 'text',
        'value'         => \Input::post('suchbegriff'),
        'eval'          => array( 'maxlength'=>50, 'rgxp' => 'extnd', 'minlength' => 3)
    ));
    
    $objForm->addFormField('kategorie',array(
        'label'         => 'Berufskategorie',
        'inputType'     => 'select',
        'value'         => \Input::post('kategorie'),
        'options'       => array(
            'Vertrieb/Marketing'    => 'Vertrieb/Marketing',
            'Kaufmännische Berufe'  => 'Kaufmännische Berufe',
            'Technische Berufe'     => 'Technische Berufe',
            'IT'                    => 'IT'
        ),
        'eval'          => array( 'includeBlankOption' => true, 'blankOptionLabel' => '-- bitte auswählen --' )
    ));
    
    $objForm->addFormField('arten',array(
        'label'         => 'Stellenarten',
        'inputType'     => 'radio',
        'value'         => \Input::post('arten'),
        'options'       => array(
            ''      => 'Alle anzeigen',
            'Vollzeit'  => 'Vollzeit',
            'Teilzeit'  => 'Teilzeit',
            'Interim'   => 'Interim'
        ),
        'eval'          => array()
    ));
    
    $objForm->addFormField('ort',array(
        'label'         => 'Ort / Region / PLZ',
        'inputType'     => 'text',
        'value'         => \Input::post('ort'),
        'eval'          => array( 'maxlength'=>50, 'rgxp' => 'extnd' )
    ));
    
    $objForm->addFormField('umkreis',array(
        'label'         => 'Oder im Umkreis von',
        'inputType'     => 'text',
        'value'         => \Input::post('umkreis'),
        'eval'          => array( 'maxlength'=>5, 'rgxp' => 'natural', 'class' => 'inline border' , 'placeholder'   => 'km' )
    ));
    
    $objForm->addFormField('umplz',array(
        'label'         => 'um die PLZ',
        'inputType'     => 'text',
        'value'         => \Input::post('umplz'),
        'eval'          => array( 'maxlength'=>5, 'rgxp' => 'natural', 'class' => 'inline' )
    ));
    
    $objForm->addSubmitFormField('submit','Suchen');
    
    if ($objForm->validate() === true) {
        $arrData = $objForm->fetchAll();
        // Schreibe die Änderungen zurück in die DB / Model u.s.w.
    }
    
    // Variablen an das Template Übergeben    
    $this->Template->form = $objForm->generate(); // Das generierte Formular an das Template übergeben
    Viel Spass beim ausprobieren.

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
  •