Formular: Mehrere Daten in ein array ??? [Gelöst]

  • mimaxx mimaxx
    Jedi-Ritter
    0 x
    144 Beiträge
    1 Hilfreiche Beiträge
    04. 09. 2012, 15:16

    Hallo,

    etwas schwer zu beschreiben das Problem. Habe Input Felder mit dem Gleichen Namen in einem Formular, die später als einzelne Datensätze gespeichert werden sollen. Würde das dann über eine Schleife lösen. Aber wie kommen die Daten erst in ein Array

    <f:form.textfield name="newCheckValues[valueCheck]" value="Beispiel" />
    <f:form.textfield name="newCheckValues[valueCheck]" value="Beispiel 2" />

    Der letzte Datensatz wird gespeichert das funktioniert und wenn ich mir mit debug das Objekt ansehe ist auch nur das letzte im array. Wie bekomme ich nun mehrere Daten in das array? Muss das im Model unter function getValueCheck? Oder im Controller die Variable $newCheckValues?

    Gruß
    mimaxx


  • 1
  • kainobi kainobi
    Jedi-Ritter
    0 x
    141 Beiträge
    0 Hilfreiche Beiträge
    04. 09. 2012, 19:31

    Geht es so vlt?

    1. <f:form.textfield name="newCheckValues[valueCheck][]" value="Beispiel" />
    2. <f:form.textfield name="newCheckValues[valueCheck][]" value="Beispiel 2" />

    Nur geraten...

  • einpraegsam.net einpraegs...
    MacGyver
    0 x
    9340 Beiträge
    80 Hilfreiche Beiträge
    04. 09. 2012, 21:38

    korrekt, gut geraten

    in2code.de - Wir leben TYPO3
    - Möchtest du TYPO3 komplett verstehen? Eigene Erweiterungen erstellen? Bei uns gibt es auch Schulungen https://www.in2code.de/produkte/typo3-schulungen/
    - Die Arbeit mit TYPO3 macht dir Spaß? Du stehst auf Berge? Komm zu uns! https://www.in2code.de/agentur/karriere/

  • mimaxx mimaxx
    Jedi-Ritter
    0 x
    144 Beiträge
    1 Hilfreiche Beiträge
    05. 09. 2012, 09:16

    perfekt vielen Dank! Wenn ich nun über Debug $newCheckValues ausgebe ist valueCheck ein Array mit den Werten!

    Nun wollte ich das ganze in einer foreach Schleife in die DB schreiben nun habe ich folgendes Problem ...

    [color=red]Cannot use object of type Tx_MyExt_Domain_Model_CheckValues as array[/color]

    Wo muss ich denn das Objekt noch als array deklarieren? Im Domain Model?

    Gruß
    mimaxx

  • mimaxx mimaxx
    Jedi-Ritter
    0 x
    144 Beiträge
    1 Hilfreiche Beiträge
    05. 09. 2012, 14:48

    Bin auch ein Schussel hatte selbst schonmal eine ähnliche Frage hier. Also auf das array komme ich jetzt mit

    1. $argumente = $this->request->getArguments();
    2. $argumente['newCheckValues']['valueCheck']

    Es ist nur wie immer hat man ein Problem gelöst kommt das Nächste. Habe erstmal ganz einfach eine while Schleife erstellt die ich zum Test 3 Mal durchlaufen lasse. Mit $i wird ja dann das array hochgezählt. Es wird leider immer nur ein Datensatz angelegt.
    Das eigentliche schreiben geschieht doch über $this->checkValuesRepository->add($newCheckValues); oder?

    Gruß
    mimaxx

  • mimaxx mimaxx
    Jedi-Ritter
    0 x
    144 Beiträge
    1 Hilfreiche Beiträge
    05. 09. 2012, 15:21

    So sieht meine Schleife inzwischen aus. Habe die Values in der Variable Wert zusammengefasst um zu sehen ob die Schleife funktioniert das geht auch soweit es stehen 3 Werte drin aber es wird nur ein Datensatz angelegt wie kann ich in der Schleife in diesem Fall 3 Datensätze anlegen?

    1. foreach ($argumente['newCheckValues']['valueCheck'] as $value){
    2. $wert .= $value;
    3. $newCheckValues->setValueCheck($wert);
    4.  
    5. $this->checkValuesRepository->add($newCheckValues);
    6. }

  • 1