Dynamický počet inputů – procházení for cyklem
- imartyn
- Člen | 9
Dobrý den,
mám vytvořenou fotbalovou tabulku (ID, tym, vyhry, remizy, prohry,
vstreleno, inkasovano, body, sezona_id) a chci vytvořit její
editační formulář.
Jelikož každou sezonu může byt rozdílný počet týmů v tabulce, získám
počet týmu z tabulky v dané sezoně a poté for cyklem přidávám do
formuláře inputy:
for($i = 1; $i <= $pocetTymu; $i++){
$form->addText('tym' . $i);
$form->addText('v' . $i); //vyhry tzn. name bude v1, v2, v3...
$form->addText('r' . $i); //remízy tzn. name bude r1, r2, r3...
$form->addText('p' . $i); //prohry tzn. name bude p1, p2, p3...
$form->addText('vs' . $i); //vstřeleno tzn. name bude vs1, vs2, vs3...
$form->addText('in' . $i); //inkasováno tzn. name bude in1, in2, in3...
$form->addText('b' . $i); //body tzn. name bude b1, b2, b3...
}
Zároveň jim nastavuji hodnoty z databáze (v kódu jsem neuvedl). Problém nastává, když chci uložit upravené inputy (hodnoty – např. body, výhry, …). Zavolám funkci ulozit(Form $form), ve které mám for cyklus stejný jako při vytváření inputů, ale nevim jak napsat jméno inputu při průchodu for cyklem:
for($i = 1; $i <= $pocetTymu; $i++){
$this->tabulka->upravData($form->values->tym.$i); //nevím jak mám spojit název inputu tym+číslo, abych získal tym1, tym2, tym3, to samé i u dalších položek výhry, remízy, prohry, ...
}
Jde to vůbec nějak takhle udělat? Napadlo mě, že možná nějak přes
pole např. body[0], body[1], ..
Prosím jak na to?
- JohnyJJP
- Člen | 6
imartyn napsal(a):
for($i = 1; $i <= $pocetTymu; $i++){ $this->tabulka->upravData($form->values->tym.$i); //nevím jak mám spojit název inputu tym+číslo, abych získal tym1, tym2, tym3, to samé i u dalších položek výhry, remízy, prohry, ... }
Co treba
for($i = 1; $i <= $pocetTymu; $i++){
$name = 'tym' . $i;
$this->tabulka->upravData( $form->values->$name );
}
?
Nebo
$formValues = $form->getValues();
for($i = 1; $i <= $pocetTymu; $i++){
$this->tabulka->upravData( $formValues[ 'tym' . $i ] );
}
?
Editoval JohnyJJP (30. 3. 2013 21:13)