| 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: 15 let
|
|||
0