Autor | Zpráva | ||
---|---|---|---|
mlpb Profil |
#1 · Zasláno: 25. 9. 2011, 20:57:37
Zdravím,
dokončujem web bp.php5.sk postavený na jQuery efekte t.j celý web je tvorený iba jedným súborom index.php a stránky navigácie sa prepínajú pomocou coda-slider efektu. V sekcii Kontakt mám umiestený formulár, ktorý je ošetrený pomocou php. Potrebujem doladiť 2 veci. Prvá je aby formulár vyplnené dáta naozaj odoslal a druhá aby sa po stlačení tlačítka "Odoslať" nepreplo na úvodnú stránku ale ostalo na záložke Kontakt. Teraz to akurát spraví kontrolu formulára a vypíše požadovanú hlášku, ale formulár sa neodošle a po stlačení "Odoslať" sa hneď prepne na úvodnú stránku. Používam následovný php kód: <?php if(isset($_POST['email'])) { // EDIT THE 2 LINES BELOW AS REQUIRED $email_to = "nejaky@gmail.com"; $email_subject = "predmet mailu"; function died($error) { // your error code can go here echo "Je nám ľúto, ale formulár nebol odoslaný "; echo "Pri odosielaní sa vyskytli následujúce chyby.<br /><br />"; echo $error."<br /><br />"; echo "Vráťte sa o krok späť a vyplňte formulár znova.<br /><br />"; die(); } // validation expected data exists if(!isset($_POST['first_name']) || !isset($_POST['email']) || !isset($_POST['popis'])) { died('Je nám ľúto, ale Váš formulár sa nepodarilo odoslať. Skúste to neskôr'); } $first_name = $_POST['first_name']; // required $email_from = $_POST['email']; // required $popis = $_POST['popis']; // required $error_message = ""; $email_exp = "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$"; if(!eregi($email_exp,$email_from)) { $error_message .= '<p class="zvyraznenie">E-mailová adresa nemá správny formát.</p><br />'; } $string_exp = "^[a-z .'-ľščťžýáíéäúôňÁČĎÉÍJKLĽĺŇÓŕřŘŠŤÚWŽ]+$"; if(!eregi($string_exp,$first_name)) { $error_message .= '<p class="zvyraznenie">Nesprávne zadané meno.</p><br />'; } if(strlen($popis) < 2) { $error_message .= '<p class="zvyraznenie">Nevyplnili ste text správy.</p><br />'; } if(strlen($error_message) > 0) { died($error_message); } $email_message = "Údaje z kontaktného formulára.\n\n"."<BR>"; function clean_string($string) { $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $email_message .= "Meno: ".clean_string($first_name)."<BR/>"; $email_message .= "Email: ".clean_string($email_from)."<BR/>"; $email_message .= "Popis: ".clean_string($popis)."<BR/>"; // create email headers $headers = 'From: '.$email_from."\r\n". $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n"; 'Reply-To: '.$email_from."\r\n" . 'X-Mailer: PHP/' . phpversion(); @mail($email_to, $email_subject, $email_message, $headers); $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n"; ?> <!-- include your own success html here --> <p class="odoslane">Formulár bol úspešne odoslaný. V blízkej dobe Vás budeme kontaktovať.</p> <?php } ?> |
||
Darker Profil |
#2 · Zasláno: 26. 9. 2011, 11:09:08
No asi by nebylo na škodu jednotlivým záložkám přiřadit anchor (index.php#kontakt) a ten zpracovávat javascriptem. Tedy pokud napíšu http://www.bp.php5.sk/#kontakt dostanu se na kontakt. Udělej to tak i pro ostatní záložky.
A když už tam máš jQuerry, mohl bys formulář odesílat ajaxem. A správnost hodnot v políčkách bys mohl kontrolovat i javascriptem. |
||
Rellik Profil |
#3 · Zasláno: 26. 9. 2011, 11:16:18
Trochu OT: Zkoušel sis projít web s vypnutým JS? ;-
Darker: „"Odoslať" nepreplo na úvodnú stránku ale ostalo na záložke Kontakt.“ tohle vyřešíš přidáním "action" do formu. např: <form action="http://www.bp.php5.sk/#odoslane" ...> Tím ti to při odeslání skočí na záložku jakou si vytvoříš. Případně to můře být v PHP po odeslání formuláře použitím funkce header() |
||
mlpb Profil |
#4 · Zasláno: 27. 9. 2011, 17:42:13
dík za rady, problém vyriešený
|
||
Časová prodleva: 13 let
|
0