Jak zavolat stejné odeslání formu jako při stisku buttonu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kleinpetr
Člen | 480
+
0
-

Ahoj, tuto otázku jsem si pokládal často, ale vždy se to dalo nějak vyřešit. Momentálně je to pro mě důležité a tak se ptám.

Uvnitř formu mám button, který má setValidationScope(FALSE) a nastavený callback. Jak mohu ručně zavolat stisknutí tohoto tlačítka, resp. jak mohu vyvolat stejné chování jako při odeslání přes button ?

Díky

Editoval kleinpetr (12. 12. 2015 18:00)

CZechBoY
Člen | 3608
+
0
-

Proč nemůžeš použít normální stisknutí toho tlačítka?
Mohla by ti pomoct metoda Form::setSubmittedBy

kleinpetr
Člen | 480
+
0
-

Protože dám příklad s autobazarem

mám autobazar o kterém mám nějaké informace.

detail autobazaru je obsáhlý form vykreslený do různých částí, a na konci stránky tlačítko submit, které uloží celý form. Teď ale potřebuji přidat do autobazaru auto, tak mám ve formuláři tlačítko addCar, které má callback na saveCars() kde uloží nějaké hodnoty o autech a přepíše snippet cars, tohle tlačítko má jako onclick ajax metodu která zavolá v presenteru addCar(), která do db přidá auto a překreslí snippet, tudíž mě už stačí do formu načítat již uložené auta a vždy při addCar se uloží hodnoty, přidá se auto do db a překlreslí se snippet. Ale kdybych přepsal snippet bez odeslání toho formu, tak se mi přepíši i hodnoty, které uživatel zadal a neuložil, takže musím při jakékoliv akci přidat button který udělá save formu a až jako onclick dávat teprve to, co chci udělat. Proto bych rád měl třeba seznam aut a když by se na některé kliklo, tak by se to zachovalo jako odeslání buttonem na callback saveCars() a například ajaxem se načetl jiný obsah, ale s tím, že se ten předešlý uloží.

Editoval kleinpetr (12. 12. 2015 19:46)

CZechBoY
Člen | 3608
+
0
-

To je teda formulář na přidání jednoho auta?
A proč je ten formulář rozdělenej na víc částí, když se stejně to auto přidá jen jednou?
Pokud tam je třeba nějaký tlačítko na vyhledávání motoru, barvy nebo čeho tak tam dej jen skrytej input, kterej bude plnit třeba javascript přes modální okno.

kleinpetr
Člen | 480
+
0
-

nene to je formulář autobazaru (v tomhle příkladu) a do toho autobazaru se dá přidat n aut a u každého auto se ještě vykreslí několik inputů. Ten form je rozdělej na karty např. Obecné kde je input pro nazev descript atd pak je treba poloha pro gps atd a pak je auta a tam je seznam aut ale muzou se prave pridavat.

kleinpetr
Člen | 480
+
0
-

a když bych to chtěl udělat trochu jednodušší tak by byla karta seznam aut kde budou jen odkazy na jednotlive detaily auta, to není problém ,ale ten seznam aut je uprostřed formu takže když bych chtěl někam přesměrovat uživatele, tak musím uložit doposud zadaný form, tudíž potřebuji nějak vyvolat submit akci pro uložení po kliknutí na nějaký odkaz. Popř to vyřešit nějakým modálem..

Editoval kleinpetr (12. 12. 2015 20:32)

CZechBoY
Člen | 3608
+
0
-

Co to udělat ve stylu jak funguje filemanager třeba?
Dám uživateli na výběr seznam, co je k dispozici teď a když se mu nic nelíbí tak ať přidá něco svýho. Zase bych použil to modální okno, kde by se vybralo to jedno (nebo víc) aut a přes javascript by se to uložilo do hidden inputu.

https://cksource.com/ckfinder/demo#…

kleinpetr
Člen | 480
+
0
-

Ano přesně takto podobně to řeším, jen ten zádrhel je v tom, že po výběru nějakého auta z modalu se modal zavře a nyní přepíšu snippet na stránce s autama a už tam musí být vypsáno auto spolu s dalšími inputy k tomu danému autu.. ale asi to také vyřeším dalším modalem, protože to bude nejčistější. Díky za tvůj čas :)