Autor | Zpráva | ||
---|---|---|---|
Majo Profil * |
#1 · Zasláno: 14. 2. 2010, 17:35:11
Mám na stránke viacero formulárov.
Viem ako spracovať jeden pomocou javascriptu (jquery), ale neviem ako zistím ktorý z tých viacerých formulárov bol práve odoslaný. V každom tom formuláry mám tie isté názvy objektov - dva selecty a jeden hidden. Menia sa iba ich hodnoty value. |
||
Keeehi Profil |
#2 · Zasláno: 14. 2. 2010, 17:37:28
Majo:
Něco musíte mít rozdílné, jinak to nepoznáte. Co třeba name u formu? |
||
mattyZEM Profil |
#3 · Zasláno: 14. 2. 2010, 17:40:21
Keeehi:
„Co třeba name u formu?“ Chamurappi říkal, že se neodesílá... Majo: Vytvoř si u každého formuláře jeden hidden input který bude mít rozdílný název. Pak jen ověříte jestli byl isset($_POST['nazev'])) |
||
Majo Profil * |
#4 · Zasláno: 14. 2. 2010, 17:43:55
Keeehi:
A ako by to vyzeralo v praxi? mattyZEM: Nechápem presne ako to myslíš. V kóde javascriptu, ktorý mi bude odosielať údaje do druhého php súboru by som už mal mať hodnoty z toho konkrétneho formulára, nie? A ako zistím v tom javascripte, ktorý to bol formulár? |
||
mattyZEM Profil |
#5 · Zasláno: 14. 2. 2010, 17:51:09 · Upravil/a: mattyZEM
Majo:
„A ako zistím v tom javascripte, ktorý to bol formulár?“ Javascript neovládám, ale v PHP by to bylo jak jsem říkal if(isset($_POST['nazev_skryteho_inputu'])) „Nechápem presne ako to myslíš“ <form> <input type="hidden" name="skryty_prvni" value=""> </form> <form> <input type="hidden" name="skryty_druhy" value=""> </form> |
||
Keeehi Profil |
#6 · Zasláno: 14. 2. 2010, 17:54:21
Majo:
JavaScript - Události onsubmit() |
||
Majo Profil * |
#7 · Zasláno: 14. 2. 2010, 20:37:07
mattyZEM:
„Javascript neovládám, ale v PHP by to bylo jak jsem říkal if(isset($_POST['nazev_skryteho_inputu']))“ To je škoda, v php by som vedel ako na to, ale potrebujem to práve v tom javascripte. > <form> > <input type="hidden" name="skryty_prvni" value=""> > </form> > > <form> > <input type="hidden" name="skryty_druhy" value=""> > </form> To som pochopil, ale ako v kóde javascriptu zistím, že bol odoslaný formulár napr. s hidden name "skryty_druhy"? |
||
Keeehi Profil |
#8 · Zasláno: 14. 2. 2010, 20:50:16
takto
<form onsubmit="alert('první');"> ... ... ... </form> <form onsubmit="alert('druhy');"> ... ... ... </form> |
||
Majo Profil * |
#9 · Zasláno: 14. 2. 2010, 21:00:33
Keeehi:
Ok, to mi vypíše hlášku podľa toho ktorý formulár odošlem. Ale ako v javascripte vytiahnem to 'první' a ako následne podľa neho vyberiem požadované hodnoty. |
||
Majo Profil * |
#10 · Zasláno: 14. 2. 2010, 21:06:14
Pre ukážku, takto vyzerajú formuláre: (počet nie je vždy rovnaký)
<form action="" method="post" name="form1"> <select name="vaha"> <option value="10">10g</option> <option value="22">20g</option> </select> <select name="mnozstvo"> <option value="1">1</option> <option value="2">2</option> </select> <input type="Submit" name="odosli" value="OK" /> <INPUT type="hidden" NAME="id" value="1" /> </form> <form action="" method="post" name="form2"> <select name="vaha"> <option value="10">10g</option> <option value="22">20g</option> </select> <select name="mnozstvo"> <option value="1">1</option> <option value="2">2</option> </select> <input type="Submit" name="odosli" value="OK" /> <INPUT type="hidden" NAME="id" value="2" /> </form> <form action="" method="post" name="form3"> <select name="vaha"> <option value="10">10g</option> <option value="22">20g</option> </select> <select name="mnozstvo"> <option value="1">1</option> <option value="2">2</option> </select> <input type="Submit" name="odosli" value="OK" /> <INPUT type="hidden" NAME="id" value="3" /> </form> A vždy po kliknutí na tl. OK potrebujem pomocou jquery odoslať hodnoty vaha, mnozstvo a id do súboru napr. spracuj.php. |
||
Časová prodleva: 5 dní
|
|||
Majo Profil * |
#11 · Zasláno: 19. 2. 2010, 18:44:19
Nikto nevie poradiť?
|
||
Fred Profil |
#12 · Zasláno: 19. 2. 2010, 21:06:27
Nechápu, proč to nepošleš přes action?
<form action="spracuj.php?form=form1" method="post"> <form action="spracuj.php?form=form1" method="post"> <form action="spracuj.php?form=form1" method="post"> |
||
Majo Profil * |
#13 · Zasláno: 21. 2. 2010, 01:48:55
Fred:
Pretože ja to potrebujem odoslať a spracovať na pozadí bez otvorenia novej stránky, resp. načítania tej istej. Preto k tomu chcem použiť jquery. |
||
Yur4Y Profil |
#14 · Zasláno: 21. 2. 2010, 10:06:59
Majo:
Tak si nevytvárajte skrytý input s rozdielnym name, ale vždy s rovnakým name a rozdielnym value. <input type=hidden name=formular value=prvy> ... <input type=hidden name=formular value=druhy> |
||
Majo Profil * |
#15 · Zasláno: 21. 2. 2010, 12:12:38
Yur4Y:
To stále chápem, vo formulároch nevidím problé, ale v tom ako to mám na pozadí poslať cez jquery. |
||
Baggz Profil |
#16 · Zasláno: 21. 2. 2010, 14:45:27 · Upravil/a: Baggz
Tak např.
<form action="" method="" name="formular-1"> <!-- Obsah formuláře 1 --> </form> <form action="" method="" name="formular-2"> <!-- Obsah formuláře 2 --> </form> $("form[name='formular-1']").submit(function() { alert("Formulář 1 byl odeslán."); return false; }); $("form[name='formular-2']").submit(function() { alert("Formulář 2 byl odeslán."); return false; }); |
||
Chamurappi Profil |
#17 · Zasláno: 21. 2. 2010, 14:45:40 · Upravil/a: Chamurappi
Reaguji na Maja:
Moc ti nerozumím. Všechny výše uvedené rady jsou správně. „vo formulároch nevidím problé, ale v tom ako to mám na pozadí poslať cez jquery“ V tom případě je tento dotaz duplicitní k spracovanie formulára na pozadí pomocou jquery, kde jsem ti na stříbrném podnose dal hotové řešení (menší než jQuery). Nikdy nezakládej duplicitní vlákna. Reaguji na Baggza: Tvůj skript neodesílá formuláře na pozadí. Jen jejich odeslání stornuje a vyhodí alert. |
||
Baggz Profil |
#18 · Zasláno: 21. 2. 2010, 14:59:04 · Upravil/a: Baggz
Chamurappi:
Ano, kompletní řešení by mohlo vypadat například takto. $("form[name='formular-1']").submit(function() { $.ajax({ type: "POST", url: "some.php", data: "", success: function(){ alert("Formulář 1 byl odeslán."); } }); return false; }); |
||
Chamurappi Profil |
#19 · Zasláno: 21. 2. 2010, 16:56:21
Reaguji na Baggza:
Nemohlo. Tvůj skript neodesílá formuláře na pozadí. |
||
Baggz Profil |
#20 · Zasláno: 21. 2. 2010, 18:47:00 · Upravil/a: Baggz
Chamurappi:
Ale ano. V momentě, kdy uživatel stiskne tlačítko „Odeslat“, se formulář odešle přes AJAX. |
||
Časová prodleva: 14 let
|
0