Zum Inhalt springen

Formular: Mehrere Daten in ein array ???

Erstellt am 4. September 2012 · 5 Antworten · letzte Antwort am 5. September 2012

Tags: Frage

mimaxx ·

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

kainobi ·

Geht es so vlt?

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

Nur geraten...

mimaxx ·

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 ...

Cannot use object of type Tx_MyExt_Domain_Model_CheckValues as array

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

Gruß
mimaxx

mimaxx ·

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

$argumente = $this->request->getArguments();
$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 ·

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?

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