Formulářové arraye <input name=„neco[]“>
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Jake Cooney
- Člen | 11
Zdravim,
potřeboval bych poradit, jak v Nette optimálně vyřešit následující
problém:
Mám formulář a chci, aby si user mohl přes JS přidávat inputy. Hodnoty
z těch inputů bych chtěl získat v podobě
array(input,input,input)
.
V HTML je pro to zápis <input name="pole[]" />
, ale vůbec
netušim jak v Nette vyžádat variabilní počet takových inputů.
Je to v Nette vůbec možný?
Doteď jsem to řešil ne-Nette způsobem (tj. surově přes
$_POST
).
Editoval Jake Cooney (27. 2. 2010 9:57)
- toka
- Člen | 253
Pro inspiraci:
...
for($i = 1; $i < 11; $i++) {
$form->addGroup('Fotografie #' . $i);
$sub = $form->addContainer($i);
$sub->addText('titulek', 'Titulek:');
$sub->addTextarea('popis', 'Popis:');
$sub->addFile('soubor', 'Fotografie:')
->addCondition(Form::FILLED)
->addRule(Form::MIME_TYPE, 'Fotografie musí být ve formátu JPEG', 'image/jpeg');
}
$form->setCurrentGroup(NULL);
...
Následně projdeš formulářem odeslaná data přes
foreach
:
...
foreach($vals as $key => $value) {
if($value['soubor']->getError() == 0) {
// Upload
}
}
...