Odeslání formuláře vygererovaného přes AJAX

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

Zdravím,
mám následující problém a už si nevím rady..
Mám dva druhy formuláře, který přepínám Radiobuttonem. Defaultně nastavený formulář se odešle v pořádku, ale když si překliknu na ten druhý typ, vygeneruje se mi sice správně, ale po vyplnění a odeslání se neodešlou data z toho nového, ale vypadá to, že tam někde drží furt ten starý a chce po mně validaci toho původního.. a hlavně se vůbec po submitu nedostane ani na callback, který má formulář nastavený při onSubmit..

pro odesílání používám jquery.ajaxform.js a formulář řeším přes komponentu..

díky za jakoukoliv radu, H.

newPOPE
Člen | 648
+
0
-

Napada ma vyrobit 2 formulare a len ich prepinat cez JS

Honca
Člen | 28
+
0
-

newPOPE napsal(a):

Napada ma vyrobit 2 formulare a len ich prepinat cez JS

No je pravda, ze ty formuláře tvořím podle hodnoty toho radiobuttonu.. mají totiž několik prvků společných a vždycky jen něco přidám nebo uberu právě podle toho typu.. právě ty dva formuláře bych chtěl řešit asi jako poslední možnost, když by se nepřišlo na lepší řešení :-)

newPOPE
Člen | 648
+
0
-

Este ma napadla moznost (ci to funguje netusim)

skusit to riesit tak, ze tie pravidla zavesis az ked form odosles,
nieco ako

<?php

if( $form['submit1']->isSubmittedBy() ) {
	$form['input']->addRule(...);
}

?>

skor to ale asi fungovat nebude ;-)

A to, ze maju spol.. prvky by som mozno riesil metodou ktora pripravi to spolocne a v tovarnach by som len dohodil co potrebujem… a mam 2 formy kde na jednom mieste pripravim spolocne veci a tovarne ich odlisia

Editoval newPOPE (1. 8. 2010 11:22)

Honca
Člen | 28
+
0
-

No já si myslím, že v tomhle chyba nebude..
Teď to řeším tak, že poprvé se mi vygeneruje defaultní typ formuláře (to je asi jasný :-) a to pak pracuje v pohodě.. když si přepnu na druhý typ formuláře podle hodnoty toho radio, což mi dělá toto:

<script>
$(function()
{
	// nastaví událost onchange pro radiobutton u reg. formulare
	$("#frm-userForm-userForm input[type='radio']").live("change", function(event) {
		$.get($.get("?do=userForm-reload", {"userForm-type": this.value})); // zahájí AJAXový požadavek

		return false;
	});
});
</script>

.. tak se formulář vygeneruje v pohodě, ale po vyplnění a odeslání se ani nespustí handler ani obsluha toho submit, ale snaží se vygenerovat ten původní formulář s tím, že mi i vyhodí chyby validačních pravidel toho původního formuláře.. někde je pešek a nevím kde :-(

newPOPE
Člen | 648
+
0
-

Aha uz mi je to jasne :-), som sa domotal sam sorry :-).

Tak tu je problem asi v tom ze po odoslani nevie ktory form bol odoslany pokial maju napr. tu istu action. za to sa snazi vygenerovat ten prvy (defaultny) a aj zvalidovat na tom to skape… (predpokladam)

A napada ma ze pokial je to cez tovarne tak asi nedosiahnes nejake riadenie ktory form bol odoslany kedze je to ta ista action="..."

Asi by som fakt nahodil 2 tovarne :-)

blacksun
Člen | 177
+
0
-

A proč nevyužiješ metodu toggle()?

https://api.nette.org/…ca7a5b4.html

Generuje si javascriptové přepínání sama a určitě funguje i správně validace, tzn. u skrytých prvků se neuplatňují validační pravidla..

Honca
Člen | 28
+
0
-

Tak jsem použil ty dvě továrny a funguje to v pohodě :-) díky moc..