Derzeit habe ich ein Kontaktformular funktioniert, aber ich muss das Formular selbst ausblenden, nachdem es erfolgreich gesendet wurde. Ich dachte daran, einen Javascript-Aufruf zu treffen, wenn die 'Succes' Nachricht ausgeführt wird, aber ich weiß nicht, wie das geht.Ausblenden Formular nach dem Senden erfolgreich
Wie kann ich das Formular ausblenden, aber die Erfolgsmeldung beibehalten, wenn es abgeschlossen ist?
Vielen Dank im Voraus!
<?php
//response generation function
$response = "";
//function to generate response
function my_contact_form_generate_response($type, $message){
global $response;
if($type == "success") $response = "<div class='success'>{$message}</div>";
else $response = "<div class='error'>{$message}</div>";
}
//response messages
$not_human = "<div class='alert alert-danger'>Verificatie incorrect.</div>";
$missing_content = "<div class='alert alert-danger'>U heeft niet alle verplichte velden ingevuld</div>";
$email_invalid = "<div class='alert alert-danger'>Incorrect e-mail adres.</div>";
$message_unsent = "<div class='alert alert-danger'>Bericht niet verzonden. Probeer opnieuw.</div>";
$message_sent = "<div class='alert alert-success'>Bedankt, wij nemen binnenkort contact met u op</div>";
//user posted variables
$name = $_POST['message_name'];
$email = $_POST['message_email'];
$phone = $_POST['message_phone'];
$message = $_POST['message_text'];
$human = $_POST['message_human'];
$totalmessage = "
Naam: $name \n
Telefoonnummer: $phone \n
E-mail: $email \n
Bericht: $message \n ";
//php mailer variables
$to = "$curauth->user_email";
$subject = "Bel mij terug";
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
if(!$human == 0){
if($human != 2) my_contact_form_generate_response("error", $not_human); //not human!
else {
//validate email
if(!filter_var($email, FILTER_VALIDATE_EMAIL))
my_contact_form_generate_response("error", $email_invalid);
else //email is valid
{
//validate presence of name and message
if(empty($name)){
my_contact_form_generate_response("error", $missing_content);
}
else //ready to go!
{
$sent = wp_mail($to, $subject, $totalmessage, $headers);
if($sent) my_contact_form_generate_response("success", $message_sent); //message sent!
else my_contact_form_generate_response("error", $message_unsent); //message wasn't sent
}
}
}
}
else if ($_POST['submitted']) my_contact_form_generate_response("error", $missing_content);
?>
<div id="respond">
<?php echo $response; ?>
<form action="<?php the_permalink(); ?>" method="post">
<p><label for="name">Uw naam (verplicht) <span>*</span> <br><input type="text" class="wpcf7-form-control wpcf7-text" name="message_name" value="<?php echo esc_attr($_POST['message_name']); ?>"></label></p>
<p><label for="message_phone">Uw Telefoonnummer (verplicht) <span>*</span> <br><input type="text" class="wpcf7-form-control wpcf7-text" name="message_phone" value="<?php echo esc_attr($_POST['message_phone']); ?>"></label></p>
<p><label for="message_email">Uw e-mail adres: <span>*</span> <br><input type="text" name="message_email" class="wpcf7-form-control wpcf7-text" value="<?php echo esc_attr($_POST['message_email']); ?>"></label></p>
<p><label for="message_text">Uw vraag: <span></span> <br><textarea type="text" name="message_text" class="wpcf7-form-control wpcf7-textarea"><?php echo esc_textarea($_POST['message_text']); ?></textarea></label></p>
<p><label for="message_human">Verificatie: <span>*</span> <br><input type="text" style="width: 60px;" name="message_human"> + 3 = 5</label></p>
<input type="hidden" name="submitted" class="wpcf7-form-control wpcf7-submit" value="1">
<p><input type="submit"></p>
</form>
</div>
@Fester Dass man Javascript ist, gibt es keine Javascript in dieser Frage ist, so ist es nicht ein Duplikat Das. – Blaatpraat
@Blaatpraat Ja, ich denke, das Javascript-Tag muss aus diesem Beitrag entfernt werden. Es ist alles HTML & PHP. – Keith
@Fester: guter Punkt, lassen Sie uns das Tag entfernen – Blaatpraat