Autor | Zpráva | ||
---|---|---|---|
gardener Profil |
#1 · Zasláno: 21. 11. 2008, 20:46:11
Zdravím
Ml bych dotaz, pokud mám skript, primitivní ověření formuláře: Jak by se dalo docíli toho, aby se po vrácení true se vykonal php skript a uyivateli by se zobrazil jenom alert box se zpravou, ze mail byl odeslan..? Díky za každou radu.. function kontrola_form(f) { var vysledek = true; //Variable return TRUE else if text input is not empty var strerr = ""; //If is input emty if (f.jmeno.value=="") strerr += "Vaše jméno\n"; if (f.email.value=="") strerr += "Váš e-mail\n"; if (f.anti.value!=3||5) strerr += "Antispam\n"; if (f.zprava.value=="") strerr += "Vaše zpráva\n"; if ("" != strerr) { vysledek = false; alert("Níže uvedená pole nejsou vyplněna spávně,uvedená pole jsou povinná.\n\n" + strerr); } else return vysledek; } |
||
yFang Profil |
#2 · Zasláno: 21. 11. 2008, 21:17:07
gardener
Navážeš to na událost formuláře onload, když bude něco špatně, dáš return false, jinak return true. |
||
gardener Profil |
#3 · Zasláno: 21. 11. 2008, 22:01:26
Myslel jsem, že onload se na form použít nemůže, pouze na body a img..?
Já mám jako událost formu onSubmit="return kontrola_form(this);", kdy odkazuji na tu fci výše a pokud vrátí true, tak jenom aby se vykonal skript, aniž by o tom uživatel věděl, resp. upozorním ho na to alertem, ale nebu ho muset přesouvat na žídné stránky, kde bude napsáno děkujeme Vám za... |
||
yFang Profil |
#4 · Zasláno: 21. 11. 2008, 22:07:47
gardener
Jé promiň, samozřejmě onsubmit. Jak máš tedy kód toho formuláře a co ti to dělá špatně? |
||
bohyn Profil |
#5 · Zasláno: 21. 11. 2008, 22:08:17
gardener
yFang as imyslel onsubmit |
||
gardener Profil |
#6 · Zasláno: 21. 11. 2008, 22:16:01
Form je takto:
<form action="scripts/send-short-mail.php" enctype="multipart/form-data" method="post" class="left-form" name="form" id="form" onSubmit="return kontrola_form(this);"> a dělá vše "zatim" dobře, jen potřebuji při true vykonat php skript a při té příležitosti vypíši alert o tom, že zpráva byla odeslána.. |
||
yFang Profil |
#7 · Zasláno: 21. 11. 2008, 22:20:49
gardener
Tak teď otázka, kdy chceš alert vypsat: a) Po vykonání php skriptu → alert dáš až do toho php. b) Před odesláním formuláře → alert "namontuješ" do té funkce, kterou jsi psal výše. (asi před to return vysledek;) |
||
gardener Profil |
#8 · Zasláno: 21. 11. 2008, 22:31:40
Za b je správně, ale abychom si rozuměli, na ten php skript se nesmi z toho formu preji.
Nástin situace: Uzivatel vyplni korektne form-->Odesle jej-->>Vypise se mu hlaska-->>nezavisle na ni se provede php skript, ktery si uz s hodnotami z formulare poradi-->>Aleuzivatel na tento skript nebude presmerovan, zustane na strance s formem a uvidi jen hlasku o.k. Nejlepsi by to bylo pomoci AJAXU ale s tim si zatim moc nerozumim..tak proto takto.. |
||
Časová prodleva: 5 dní
|
|||
bohyn Profil |
#9 · Zasláno: 26. 11. 2008, 15:01:00
gardener
Tak ho pres hlavicku vrat zpatky na tu stranku. Pokud nechces reload tak jedine zminovany AJAX. header("Location: form.php?stav=ok"); |
||
Časová prodleva: 15 let
|
0