Autor Zpráva
gardener
Profil
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
gardener
Navážeš to na událost formuláře onload, když bude něco špatně, dáš return false, jinak return true.
gardener
Profil
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
gardener
Jé promiň, samozřejmě onsubmit.
Jak máš tedy kód toho formuláře a co ti to dělá špatně?
bohyn
Profil
gardener
yFang as imyslel onsubmit
gardener
Profil
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
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
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..
bohyn
Profil
gardener
Tak ho pres hlavicku vrat zpatky na tu stranku. Pokud nechces reload tak jedine zminovany AJAX.
header("Location: form.php?stav=ok");

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:

0