Jak předat parametr formuláři, který vytvořím ajaxem
- kejlicz
- Člen | 201
Ahoj.
Zkouším se naučit pracovat s formuláři ajaxově a narazil jsem na věc,
která mi není jasná. Popíšu to zatím slovy, kdyby to nestačilo, dejte
vědět a pošlu kód. Používám nette.ajax.js
Mám formulář s jedním selectem a nastavenou třídou ajax, který při
změně ručně pomocí JS odešlu. Formulář se zpracuje, nastavím si v
$this->template->showSmsForm IDčko objednávky, které se to týká, pak
aktualizuju snippety pomocí redrawContol(). V šabloně je kontrola, zda je
nastaveno showSmsForm a pokud ano, vygeneruje se mi další ajax formulář na
odeslání SMS. Do teď to funguje, ale když odešlu ten SMS formulář, tak
dostanu chybu, že showSmsForm v šabloně neexistuje.
Je mi asi jasné proč, ale nevím, jak to řešit.
Když např. pracuji ajaxově přes handleXXX, tak si proměné předávám v šabloně. Jak si je ale předávat, když pracuji s formulářem ajaxově?
Snad je to pochopitelné, jak to myslím.
Díky moc za pomoc.
- TonnyVlcek
- Člen | 31
Ahoj,
nějaký kus kódu by se tu hodil (presenter nebo komponenta kde to
vytváříš), nejsem si jistý, jestli si to představuju správně:
Máš select, jakmile se po změně odešle, zobrazíš další form, po
odeslání formuláře (onSuccess) dostaneš chybu, že proměnná (kterou do
template posíláš v onSuccess metodě toho prvního formu) neexistuje.
Tak nějak?
Řekl bych, že v tom onSuccess toho druhého formuláře SmsForm) musíš tu proměnnou taky poslat do šablony. Zpracování formuláře funguje na „úrovni“ signálů, takže tam někde o tu proměnnou přijdeš (nebo spíš se v tom daným běhu vůbec nedostaneš na ten kus kódu, který ji předtím nastavil).
Snad to pomůže, pokud ne tak zkus nadhodit nějaký kód a třeba se tam ještě najde něco jinýho :)