2016-03-24 12 views
-1

Derzeit Mein Kontaktformular geht auf eine andere Seite, wenn mit einer Warnung, die danke für die Kontaktaufnahme mit uns gesendet wird, aber was ich will, dass es zu tun ist, danke für die Kontaktaufnahme mit uns als Pop-up oder Text auf dem Bildschirm, überall zu sagen Ihnen danken, aber nur auf der gleichen Seite wie das KontaktformularKontakt Dankeschön-Seite

<?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"> 

ich versucht habe, ersetzt die if-Anweisung zu

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

aber das ging noch auf eine andere Seite

+1

Dies ist zu breit, um hier vollständig zu beantworten, aber Sie müssen in Ajax/Javascript suchen, um Ihr Formular unterschreiben und die Ergebnisse behandeln. – jeroen

Antwort

0

Sie müssen Ihre Daten vor dem Senden validieren.

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 } 
    } 
} 

Da Sie nicht zu einem anderen gehen möchten, können Sie in der gleichen Seite veröffentlichen, indem Sie die Aktion wie unter Angabe oder Sie nicht unbedingt tun müssen.

<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> 

Hoffe, das kann helfen.

+0

Bitte als akzeptiert markieren, wenn es hilft. –