Autor Zpráva
timemil
Profil
Dobrý den.
Ptřeboval bych poradit s jedním problémem. Tvořím stránky pro jednoho podnikatele, ale nevím, jak zobrazit v aplikaci shadowbox nebo lightbox formuláře. Konkrétně kontaktní formulář s odesláním na email tak, aby se zobrazil i výsledný text "formulář byl úspěšně odeslán"
timemil
Profil
muže to byt i Lightbox nebo cokoliv podobného
slovakCZ
Profil
ty kliknes na nejaky odkaz a vyjede ti formular (pomoci Lightboxu)? Jestli ano, tak po odeslani formulare se ti stranka refreshne predpokladam...


jsou 2 moznosti jak to resit... bud odesilani formulare budes resit AJAXem, takze odesles na nejakou stranku na serveru ajaxem formular a server ti vrati odpoved (odeslano v poradnu / neodeslano (napr chybne vyplnene pole email..)). Pokud ti server vrati zpravu, ze se formular odeslal v poradku, tak jednoduse cely obsah lightboxu smazes a vlozis misto nej text "FORMULAR BYL ODESLAN". Zde pozor... clovek v tomto pripade po odeslani formulare uvidi text "formular odeslan", kdyz zavre okno lightboxu a znova jej otevre, tak opet uvidi jen text "formular odeslan"... po zavreni lightboxu se musi tedy text "formular odeslan" smazat a vratit tam puvodni formular.. co kdyz clovek bude chtit odeslat formular 2x za sebou (zjisti ze udelal chybu v textu)... to aby zmackl F5 neni userfriendly..

Druha varianta (sice jednoduzsi ale je to prasarna) je ta, ze mas na strance nejaky odkaz:
<a href="stranka-s-textem-FORMULAR-ODESLAN.html" class="lightbox" id="klikne-se-automaticky-po-odeslani-formu" style="display:none;">&nbsp;</a>

jak vidis, odkaz ma nastaveno DISPLAY:NONE, coz chceme... uzivatele jej tedy nevidi a muze byt umisten na konci stranky... po kliknuti na tento odkaz by se lightoxem otevrela stranka "stranka-s-textem-FORMULAR-ODESLAN.html" na ktere by byl jen text "FORMULAR ODESLAN". to je to co chces, ted jeste musis vyvolat udalost, ktera ti klikne na odkaz.. to znamena, ze pokud uzivatel odesle formular napr takovyto:
<form action="index.php?page=odesli-formular" method="post"></form>

tak by si mel v php takovyto kus kodu:
if($_GET['page']=="odesli-formular"){
echo 'funkce, ktera vyvola udalost click na sryty odkaz';
}

kde misto "funkce, ktera vyvola udalost click na sryty odkaz" by byl kus javascript kodu, ktery vyvola udalost click na odkaz s id="klikne-se-automaticky-po-odeslani-formu".

Jelikoz mluvis o nejakych lightboxech, tak predpokladam ze pouzivas jQuery... tento kus JS kodu by tedy mohl vypadat takto:
$('#foo').trigger('klikne-se-automaticky-po-odeslani-formu');



A co se tedy stane strucneji? uzivatel otevre formular pomoci lightboxu, odesle jej a na stranku se vypise kus javascript kodu, ktery automaticky klikne na odkaz, ktery smeruje na stranku, ktera obsahuje text "formular odeslan"... jelikoz odkaz ma tridu lightbox, tak se otevre tato stranka v lightboxu (toto zalezi na nastaveni).


Prvni reseni pomoci ajaxu je ovsem elegantnejsi a jiste se s ajaxem setkas i v budoucnu

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0