2016-03-24 5 views
-1

В настоящее время Моя контактная форма отправляется на другую страницу при отправке с предупреждением, в котором говорится, что спасибо за то, что вы связались с нами, но что я хочу сделать, это сказать спасибо за то, что свяжитесь с нами как всплывающее окно или текст на экране, в любом месте, чтобы сказать спасибо, но как раз на той же странице контактной формыСвязаться с нами страница

<?php 
$field_name = $_POST['cf_name']; 
$field_email = $_POST['cf_email']; 
$field_message = $_POST['cf_message']; 

$mail_to = ' [email protected]'; 
$subject = 'Message from a site visitor '.$field_name; 

$body_message = 'From: '.$field_name."\n"; 
$body_message .= 'E-mail: '.$field_email."\n"; 
$body_message .= 'Message: '.$field_message; 

$headers = 'From: '.$field_email."\r\n"; 
$headers .= 'Reply-To: '.$field_email."\r\n"; 

$mail_status = mail($mail_to, $subject, $body_message, $headers); 

if ($mail_status) { ?> 
    <script language="javascript" type="text/javascript"> 
     alert('Thank you for the message. We will contact you shortly.'); 
     window.location = 'contact_page.html'; 
    </script> 
<?php 
} 
else { ?> 
    <script language="javascript" type="text/javascript"> 
     alert('Message failed. Please, send an email to [email protected]'); 
     window.location = 'contact_page.html'; 
    </script> 
<?php 
} 
?> 



<form action="contact.php" style="height:auto;" class="form" method="post"> 
    <h1>Your name</h1> 
    <input type="text" class="form textbox" name="cf_name"><br> 
    <h1>Your e-mail</h1> 
    <input type="text" class="form textbox" name="cf_email"><br> 
    <h1>Message</h1> 
    <textarea class="form textbox" name="cf_message"></textarea><br> 
    <input type="submit" value="Send"> 

Я попытался заменить, если заявление на

if ($mail_status) { ?> 
    <div><h1>thank you for submitting the contcat form</h1> </div> 
    <?php 
    } 

но это все-таки пошел на другую страницу

+1

Это просто, чтобы ответить здесь полностью, но вам нужно заглянуть в ajax/javascript, чтобы погладить вашу форму и обработать результаты. – jeroen

ответ

0

Перед отправкой необходимо проверить свои данные.

if(isset($_POST['submit']){ 

    $field_name = isset($_POST['cf_name'])? $_POST['cf_name']:''; 
    $field_email = isset($_POST['cf_email'])? $_POST['cf_email']:''; 
    $field_message = isset($_POST['cf_message'])? $_POST['cf_message']:''; 

    if(empty($field_name){ 
     $error = 'Field Name is blank'; 
    }elseif(empty($field_email) || filter_var($field_email, FILTER_VALIDATE_EMAIL)){ 
     $error = 'Email is invalid'; 
    }elseif(empty($field_message)){ 
     $error = 'Message is blank'; 
    }else{   
     $mail_to = ' [email protected]'; 
     $subject = 'Message from a site visitor '.$field_name; 
     $body_message = 'From: '.$field_name."\n"; 
     $body_message .= 'E-mail: '.$field_email."\n"; 
     $body_message .= 'Message: '.$field_message; 
     $headers = 'From: '.$field_email."\r\n"; 
     $headers .= 'Reply-To: '.$field_email."\r\n"; 
     $mail_status = mail($mail_to, $subject, $body_message, $headers); 
    if($mail_status){ ?> 
     <script language="javascript" type="text/javascript"> 
     alert('Thank you for the message. We will contact you shortly.'); 
     document.getElementById("myForm").reset();//reset the form 
    </script> 
    <?php }else{ ?> 
     <script language="javascript" type="text/javascript"> 
     alert('Message failed. Please, send an email to [email protected]'); 
     //document.getElementById("myForm").reset();//Reset the form 
    </script> 
<?php } 
    } 
} 

Поскольку вы не хотите, чтобы перейти к другой, вы можете оставить в одной и той же странице, указав действие, как показано ниже, или вы не обязательно должны делать.

<form action="<?php echo $_SERVER['PHP_SELF'];?>" 
    style="height:auto;" class="form" id="myForm" method="post"> 
    <h1>Your name</h1> 
    <input type="text" class="form textbox" name="cf_name"><br> 
    <h1>Your e-mail</h1> 
    <input type="text" class="form textbox" name="cf_email"><br> 
    <h1>Message</h1> 
    <textarea class="form textbox" name="cf_message"></textarea><br> 
    <input type="submit" value="Send"> 
<div class="error"> 
    <?php if(!empty($error)){ echo $error; } ?> 
</div> 

Надеюсь, это поможет.

+0

Пожалуйста, отметьте как принято, если это поможет. –

Смежные вопросы