Hallo zusammen,
ich versuche schon seit zwei Tagen einen normalen Formular Select Option input Feld zu realisieren, leider aber erfolglos und im Web finde ich auch nicht was richtiges.
also so was will ich realisieren:
<select>
<? meine for schleife ?>
<option value="id[$i]">name[$i]</option>
<?ende meiner for schleife ?>
</select>
die will ich auch in Fluid haben
<f:form.select
name="stores"
options="{storeName}"
optionValueField="{stores[uid]}"
optionLabelField="{stores[name]}"
/>
das geht leider nicht, wie kann ich denn Value und denn optionLabelField selber setzen?
Du solltest dir nochmal die Basics (Doku) zu Fluid und extbase durchlesen.
Für optionValueField und optionLabelField musst du nur die Variablen des Objekts angeben, also z.B.
optionValueField="uid"
optionLabelField="name"
Und sind in {storeName} die anzuzeigenden Stores als Objekt/Array vorhanden? Sollten sie jedenfalls.
sktypo3 schrieb
Du solltest dir nochmal die Basics (Doku) zu Fluid und extbase durchlesen.
Für optionValueField und optionLabelField musst du nur die Variablen des Objekts angeben, also z.B.
optionValueField="uid"
optionLabelField="name"
Und sind in {storeName} die anzuzeigenden Stores als Objekt/Array vorhanden? Sollten sie jedenfalls.
Das ist mir schon bewusst, das habe ich ja noch nicht ganz verstanden.
also
options="{userArray}" was soll in dieser Array sein? wie soll das auf gebaut sein? diese Feld soll doch ersetzt werden durch "optionValueField" und "optionLabelField"
optionValueField="id" muss ein Instanz von Domain_Model_User sein (soll das auch ein Array zurück liefern, erwartet optionValueField einen Array?)
optionLabelField="firstName" muss ein Instanz von Domain_Model_User sein (soll das auch ein Array zurück liefern, erwartet optionValueField einen Array?)
Hallo oma420,
Ich möchte Dich bitten mir eine Frage zu beantworten: Möchtest Du das Ganze ordentlich und sauber mit den Techniken von Extbase und Fluid umsetzen oder möchtest Du es (entschuldigt) hingerotzt haben?
Für erstere Variante kann ich Dir sehr gerne helfen. Auch wenn Du Dich für die 2. entscheidest, schreibe ich es trotzdem, denn sehr wahrscheinlich gibt es noch andere mit diesem oder ähnlichem Problem.
Ich würde das ganze Formular in ein Objekt packen, für die select-Box gibt es dann ein Property vom Typ string
/**
/* @var string
/*
*/
protected $selectBoxField
Für die Optionen würde ich mir einen Service bauen (sowas gehört nicht in den Controller!!! (ich hoffe 3 Ausrufezeichen reichen aus, um das deutlich zu machen)):
class Tx_MyExt_Domain_Services_OptionsService {
public function getOptions() {
return array (
'male' => 'Herr',
'female' => 'Frau',
'family' => 'Familie'
);
}
}
Im Controller holst Du Dir dann vom Service Deine Optionen und weist sie dem View zu:
$this->view->assign('options', $this->optionsService->getOptions());
Und im Template musst Du nur noch die Optionen an das Feld packen:
<f:form.select property="selectBoxField" options="{options}" />
So sind alle Aufgaben getrennt und da wo sie hingehören. Und nach dem Abschicken hast Du in Deinem Modell den Value, den Du benötigst.
Gruß, Sven
ps: is jetz allet ausm Kopp, ick hoffe, ick hab nüscht vajessn