Onblur akce po změně inputu
- Johnczek
- Člen | 37
Zdravím, řeším tento problém. V košíku mám objednávku. Ta obsahuje
produkty. Ty já potřebuji vypsat do tabulky, kde bude každý produkt
znázorňovat jeden produkt. V každém řádku bude moct změnit množství
kusů daného produktu a smazání daného produktu.
Smazání daného produktu asi bude nějaký n:href akce které předám id
produktu a kde pak presenter zavolá metodu z objektu objednávky, pak
proběhne redirect a uživatel uvidí přepočítanou objednávku.
Problém ale nastává u změny množství kusů produktů. Jak je nejlépe řešit to, když uživatel změní data v inputu tak se vyvolá nějaká action metoda v presenteru které se předá id produktu a počet kusů (nějaká obdoba onBlur= funkce v html tagu). Pak se odešle do presenteru (odkud se zavolá metoda objednávky která to vše aktualizuje) a pak se provede redirect (po kterém se inicializuje objekt objednávky s novými daty a bude vše přepočítané správně. Dělat pro každý produkt formulář mi přijde zbytečné (navíc nevím jak to řešit když nevím kolik produktů tam bude a každý asi musí mít nějaké idčko podle kterého poznám který produkt mám změnit- případně všechny id produktů s příslušnými počty nahrát do polí ale to mi přijde moc komplikované a řekl bych že musí existovat elegantnější řečení)
Mohl by mi někdo poradit jak tohle řešit? (případně dodat jak by řešil to smazání produktu z objednávky- jak říkám, já bych to řešil nějakou metodou actionRemoveAcrticle($articleId) v presenteru).
- Darkling
- Člen | 35
Ahoj,
pro vytváření více komponent stejného typu, když dopředu nevíš kolik
jich bude, se v Nette používá Multiplier (v tvém případě formulář pro
aktualizaci počtu produktů), viz https://doc.nette.org/…n/multiplier.
Co se týká onBlur dá se to udělat pomocí javascriptu, třeba nějak takhle jednoduše:
$(".inputCount").blur(function() { // nebo change event
$(this).closest("form").submit();
});