Formuláře Jak řešit edit produktů v administraci
- noodle
- Člen | 9
Dobrý den,
právě řeším tento problém:
Mám z databáze výpis produktů, kde každý z nich má své informace
(název, cena) v input polích formuláře.
Změnou hodnoty input pole a odesláním formuláře (submit tlačítko edit)
chci v databázi aktualizovat údaje o produktu.
Napadlo mě více možností, ale u každé z nich vidím problém, co je
optimální?
- každý produkt má vlastní formulář, tedy vlastní submit tlačítko edit
- všechny produkty jsou v jednom formuláři, kde každý produkt je container a má vlastní submit (edit) tlačítko
- řešení jako b, ale pouze jedno submit tlačítko dole
u řešení 1) nevím, jak bych zavolal metodu na obsluhu formuláře pro správný produkt (podle id) – nevím jak rozlišovat submit tlačítka – dá se jim nějak přidat atribut – například id?
u řešení 2) nevím, jestli lze zjistit, které inputy se změnily a do databáze aktualizovat pouze je, nebo jestli to musím kontrolovat podle databáze
Pokud jsou všechny metody co jsem napsal špatně, jaké je ideální řešení?
- noodle
- Člen | 9
Ok, díky, multiplier byl přesně to co jsem chtěl.
Teď ještě jeden dotaz spíše ze zajímavosti, u každé komponenty
vytvořené pomocí multiplier bych chtěl v formuláři vykreslit pomocí
setDefaultValue v input poli formuláře hodnotu z databáze, kterou chci
editovat.
Musím pro každou vytvářenou komponentu multiplierem tzn. pro každý produkt
provést dotaz do databáze, nebo to lze udělat elegantněji pomocí jednoho
společného dotazu pro všechny komponenty?
- Jan Mikeš
- Člen | 771
$rows = $table->select("xxx")->fetchPairs();
a potom si cele pole predas pomoci use $rows do multiplieru a primo v jednotlivych instancich muzes pouzivat takto:
$form->addText("xxx")->setDefaultValue($rows[$id]->someValue);
Psano z hlavy, tudiz nemusi byt presne vse spravne ale jde o princip ktery by mel fungovat.