2016-10-07 3 views
1

현재 연락 양식이 작동하고 있지만 성공적으로 전송 된 후에 양식 자체를 숨길 필요가 있습니다. 나는 'succes'메시지가 실행될 때 javascript 호출을 시도 할 생각 이었지만, 어떻게 해야할지 모르겠습니다.제출 성공 후 양식 숨기기

어떻게 양식을 숨길 수 있습니까? 완료되면 succes 메시지를 유지할 수 있습니까?

미리 감사드립니다. 당신은 당신의 메일을 보낼 때 양식을 표시되지하여이 작업을 수행 할 수 있습니다

:-)

<?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> 
+0

그 하나는 자바 스크립트가 @Fester는,이 질문에는 자바 스크립트가 없다, 그것은의 중복하지 그래서 그. – Blaatpraat

+0

@Blaatpraat 네, javascript 태그가이 게시물에서 제거해야한다고 생각합니다. 그것은 모두 HTML과 PHP입니다. – Keith

+0

@Fester : 좋은 지적, 그 태그를 제거합시다 – Blaatpraat

답변

4

니, IK의 벨 JE의 NIET의 terug. 이미 메시지를 표시하기 때문에
이 충분해야합니다

<?php 
if (!isset($sent) || !$sent) { 
?> 
<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> 
<?php 
} 
?> 

그래서 if 문 내부의 양식을 넣어.

+0

대단하다! 그냥 ""if =) 바깥에 넣으십시오. (올바른 것으로 표시하려면 몇 분 정도 기다려야합니다.) – rwzdoorn

0

(내가 다른 URL로 게시물을 다루는 PHP를 옮기고 있지만, AJAX 요청이 아니라면 다시 리다이렉션한다.) 자바 스크립트가 있으면 요청을 처리 할 것이다. 사용자의 브라우저에서 꺼져 있습니다.

그런 다음 (저장 URL에 추가) 다음과 같은 자바 스크립트를 추가

$('#my-form').submit(function(evt){ 
 
\t // stop form submitting 
 
\t evt.preventDefault(); 
 

 
\t $.ajax(function(){ 
 
    \t method: "POST", 
 
    \t url: "[ADD_SAVE_URL]]", 
 
    success(function(data){ 
 
    \t // debug response 
 
    \t console.log(data); 
 
     
 
     $('#response-message').html(response.message); 
 
     if (response.success){ 
 
     $('#my-form').hide(); 
 
     } 
 
    }), 
 
    fail(function(jqXHR, textStatus){ 
 
    \t // debug response 
 
    \t console.log(jqXHR, textStatus); 
 
     
 
     $('#response-message').html('Ajax error!'); 
 
    }) 
 
    }); 
 

 
});
<div id="respond"> 
 
    <div id="response-message"><?php echo $response; ?></div>div> 
 

 
    <form action="<?php the_permalink(); ?>" method="post" id="my-form"> 
 
    <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>

관련 문제