Autor | Zpráva | ||
---|---|---|---|
MAUGLI Profil * |
#1 · Zasláno: 27. 4. 2007, 09:07:02
Zdravím,
existuje v PHP nějaká alternativa k odkazu JAVASCRIPTU - "ZPET" ??? <A HREF="javascript:history.back();">ZPET</A> ... ale tak, aby zůstal např. vyplněný formulář... když se klikne na tento JAVASCRIPT, tak tam data zůstanou. Nebo jak se to normálně řeší bez JAVASCRIPTU? Děkuju za radu Maugli |
||
Joker Profil |
#2 · Zasláno: 27. 4. 2007, 09:34:13
PHP je na straně serveru, takže nemá informace o klientovi, tedy ani historii prohlížeče.
aby zůstal např. vyplněný formulář Jak můžu vědět, že předchozí stránka byla z mého webu, že na ní byl formulář, atd.? Pokud má tlačítko ZPĚT vést na nějakou konkrétní stránku, bylo by lepší než history.back() udělat odkaz na tu konkrétní stránku. |
||
Taps Profil |
#3 · Zasláno: 27. 4. 2007, 10:12:12
MOhl bys také využít php a pomocí podmínek if zjistit zda formuláře byly vyplněny či nikoliv a pokud by byly vyplněny tak bysto pomocí header přesměroval an jinou stránku
|
||
jrm Profil |
#4 · Zasláno: 27. 4. 2007, 10:29:37
Proměnné lze ukládat do "session", pak z nich vybírat... Do polí formuláře pak vypisovat přes "echo".
|
||
Miloš Profil |
#5 · Zasláno: 27. 4. 2007, 10:30:04
Pomocí PHP se to dá udělat i bez tlačítka zpět; dokonce lze mít v jednom souboru jak formulář, tak odesilací funkci. Ve zkratce:
<?php |
||
MAUGLI Profil * |
#6 · Zasláno: 27. 4. 2007, 11:12:44
Co znamená
if($_SERVER['REQUEST_METHOD'] != 'POST') |
||
Miloš Profil |
#7 · Zasláno: 27. 4. 2007, 11:18:59 · Upravil/a: Miloš
MAUGLI
Test na to, jestli jsem na stránky přišel pomocí GET nebo POST. A ono if($_SERVER['REQUEST_METHOD'] != 'POST') zkouší, zda jsem na tuto stránku metodou post nepřišel, neboli jestli jsem neodeslal formulářová data metodou POST. Jestliže jsem na stránku přišel normálně, tak žádná data formulář neposlal, zobrazí se proto prázdný formulář – viz funkce zobraz(), kde mají jednotlivé proměnné hodnotu prázdného řetězce. Jestliže jsem ale formulář odeslal, vracím se na stejnou stránku, ale funkci zobraz() jsem odesláním dormuláře předal hodnoty pomocí metody POST. |
||
Miloš Profil |
#8 · Zasláno: 27. 4. 2007, 12:13:03
MAUGLI
Ještě bych doplnil – data je vhodné otestovat i před odesláním – javascriptem. Proto ono onsubmit="return kontroluj(this)" Pokud js. kontrola zjistí nedostatek, formulář se neodešle, místo toho vyleze hláška. No a jestliže není js povolen, pak to zkontroluje php, viz výše. Zmíněná javascriptová kontrola ve zkratce: function kontroluj(formular){ pr = formular.prijmeni.value; // příjmení em = formular.email.value; // e-mail if (window.RegExp) { if (pr == "") {alert ("Vyplňte, prosím, své příjmení"); formular.prijmeni.focus(); return false;} if (em == "" || em == "@") {alert ("Vyplňte, prosím, svůj e-mail); formular.email.focus(); return false;} } } |
||
MAUGLI Profil * |
#9 · Zasláno: 27. 4. 2007, 12:43:53
Miloš
Tvé řešení se mi velmi zamlouvá... ... akorát se chci zeptat k tomu JS ve zkratce... je to takhle funční, nebo je to potřeba nějak doladit. Já jsem na JS úplná NULA :) |
||
Miloš Profil |
#10 · Zasláno: 27. 4. 2007, 12:49:24
Takhle je to funkční. Není ale ošetřeno, jestli políčko email neobsahuje třeba @hovadina, stejně jako jestli jméno není třeba 565. To by se řešilo pomocí regulárních výrazů, které jsem se ještě nenaučil (ach ta lenost!)
Ten js namusíš dávat do dokumentu, stačí ho přilinkovat: <script type="text/javascript" src="kontrola.js"></script> (je-li uložen v souboru kontrola.js) |
||
Časová prodleva: 11 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.