Autor Zpráva
quatzael
Profil
Mám na stránce několik formulářů s class="form". Potřeboval bych provést následující submit, akorát nemůžu přijít na to, jak zjistím konkrétní id toho formuláře, abych odeslal opravdu ten, u kterého kliknu na submit.

Díky za rady.

$(".form").submit(function(e){
e.preventDefault();
$.ajax({
url: "/path/script.php",    
type: "POST",        
data: {form: $(this).serialize()},          
success: function (response) { 

var element_id = $(this).attr('id');  // evidentně nefunguje
document.getElementById(element_id).submit();

}
});
});
Keeehi
Profil
Proč chceš odesílat formulář, který jsi právě úspěšně odeslal?

$(this) už v době volání callbacku možná nebude odkazovat na ten formulář. Ale mělo by jít si to před voláním ajaxu uložit do proměnné a tu pak uvnitř v callbacku použít.
quatzael
Profil
Keeehi:
Máš pravdu, nemá to být uvnitř toho ajaxu. V noci mi to už vůbec nemyslelo. Dík moc!

Keeehi:
Tak já ho za prvé neposílám na stejnou adresu. Nejdřív na server, kde se zpracují data a vytvoří se nějaký sessions a potom spolu s přechodem na následující stránku, kde se spolu s těmi sessions vygeneruje výsledek.
_es
Profil
quatzael:
Nejdřív na server, kde se zpracují data a vytvoří se nějaký sessions a potom spolu s přechodem na následující stránku, kde se spolu s těmi sessions vygeneruje výsledek.
Ale tú „následující stránku“ predsa tiež generuje ten istý server, preto nie je dôvod, prečo by nemohlo ten istý výsledok vyvolať už to normálne odoslanie formulára (aj bez JS).
quatzael
Profil
_es:
To zpracování dat chvíli trvá, takže dokud probíhá ajax, tak tam mám hozenej spinner. Už jsem to řešil v tomto vlákně pomocí flushe, ale nefungovalo to 100%ně..
Keeehi
Profil
quatzael:
Tak jinak, když už jsi ty data jednou poslal, tak je přece nemusíš posílat znova. Stačí jen přesměrovat. Nebo je i s tím problém?
quatzael
Profil
Keeehi:
No tak minimálně potřebuju odeslat submit-id, aby se to pak na další stránce spárovalo s odpovídajícími zpracovanými daty (pro případ, že by někdo odesílal různě vyplněné formuláře z více otevřených oken).

Je pravda, že teoreticky nepotřebuju odesílat všechno, ale zase ty data potřebuju přeposlat do dalšího kroku formuláře a na to už mám zase vytvořený spešl funkce, takže bych musel ty data znovu přetvářet ze SESSION, aby se to tvářilo, že je to z POST.

Navíc neodesílám nijak velký data.. Jenom asi 20 inputů s čísly a řetězci. Vygenerovaný data v SESSION jsou pak diametrálně obsáhlejší..

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: