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
+
0
-

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
+
0
-

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
  }
}
...
Honza Kuchař
Člen | 1662
+
0
-

Bohužel dynamicky to Nette neumí. :(