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í. :(