Generovani formulare HttpUploadedFile pouze 20×
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- milroe
- Člen | 7
Zdravíčko,
mám problém při dynamicky vygenerovaném formuláři.
Podle potřeby vygeneruju určitý počet Containerů s textovými poli +
upload souboru.
Pokud je počet containerů <= 20 je vše OK, pokud ale překročí hodnotu
20, pak
v odeslaných datech (prvních 20 containerů je ok, platí pouze pro 21. a
víc) jsou
jen data textových polí ale objekt HttpUploadedFile je prázdný ().
presenter:
protected function createComponentEditFormPhotos( )
{
$id = $this->getParam('id');
$row = $this->model->find($id)->fetch();
$this->pocet_lavicek = $row->pocet_lavicek;
$form = new AppForm();
for ($i = 0; $i < $this->pocet_lavicek ; $i++) {
$form->addGroup($i);
$cnt = $form->addContainer($i);
$cnt->addText('number','Číslo lavičky:', 20, 20);
$cnt->addTextArea('poznamka', 'Poznámka:', 20, 2);
$cnt->addTextArea('popis_lokality', 'Popis lokality:', 20, 2);
$cnt->addFile('img', 'Fotka:');
$cnt->addText('xgps', 'E:')
->addCondition(Form::FILLED)
->addRule(Form::FLOAT, "Souřadnice musí být číslo.");
$cnt->addText('ygps','N:')
->addCondition(Form::FILLED)
->addRule(Form::FLOAT, "Souřadnice musí být číslo.");
}
$form->setCurrentGroup( NULL );
$form->addSubmit('savePhotos', "Uložit");
$form->onSubmit[] = \callback($this, 'saveFormPhotos');
return $form;
}
zpracování:
public function saveFormPhotos($form)
{
$group_id = $this->getParam('id');
$data = $form->getValues();
$sequence = 0;
...
...
Výsledek:
předchozí jsou shodné s 19, takže OK ( číslováno od 0)
..
..
19 => array(6) {
"number" => "sfdsf" (5)
"poznamka" => "fdgd" (4)
"popis_lokality" => "fgdf" (4)
"img" => Nette\Web\HttpUploadedFile(5) {
"name" private => "lavicka.jpg" (11)
"type" private => NULL
"size" private => 140494
"tmpName" private => "/tmp/phpDZNNkR" (14)
"error" private => 0
}
"xgps" => "43" (2)
"ygps" => "53453" (5)
}
20 => array(6) {
"number" => "retrt" (5)
"poznamka" => "reter" (5)
"popis_lokality" => "tretrre" (7)
"img" => Nette\Web\HttpUploadedFile(5) {
"name" private => NULL
"type" private => NULL
"size" private => NULL
"tmpName" private => NULL
"error" private => 4
}
"xgps" => "4543" (4)
"ygps" => "34534" (5)
}
..
..
následující jsou shodné s 20, prázdný objekt Nette\Web\HttpUploadedFile,
přesto že jsem soubor vložil.
Nette Framework (version 2.0-dev 9f535f9 released on 2011–01–10)
PHP 5.3
Může te mi poradit kde může být chyba, případně jak to generovat jinak?