2016-07-27 25 views
-1

私のPHPで助けが必要です。私はajax phpメーラーシステムを作成しています。私は2つのことを考え出しています。電子メールが正常に送信されたときに、別のページにリダイレクトするようにしたいです。PHPで成功した後にリダイレクトするには

そして、私は電子メールを送ります。「from」部分には私のWebホスト名の名前があり、私はそれを私の電子メールに変更したい、誰でもPHPやajaxでそれを行う方法を知っています。

PHPファイル

<?php 

     // Only process POST reqeusts. 
     if ($_SERVER["REQUEST_METHOD"] == "POST") { 
      // Get the form fields and remove whitespace. 
      $name = strip_tags(trim($_POST["name"])); 
      $phone = trim($_POST["tel"]); 
      $time = trim($_POST["time"]); 
      $method = trim($_POST["method"]); 
        $name = str_replace(array("\r","\n"),array(" "," "),$name); 
      $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL); 
      $message = trim($_POST["message"]); 

      // Check that data was sent to the mailer. 
      if (empty($name) OR empty($message) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) { 
       // Set a 400 (bad request) response code and exit. 
       http_response_code(400); 
       echo "Oops! There was a problem with your submission. Please complete the form and try again."; 
       exit; 
      } 

      // Set the recipient email address. 
      // FIXME: Update this to your desired email address. 
      $recipient = "[email protected]"; 

      // Set the email subject. 
      $subject = "New contact from $name"; 
      $msg = "Thank you for contacting ThePPCGroup.\nSomeone will contact you shortly. Please let us know the best time to reach you, and if phone or email is better.\nThePPCGroup\n855-539-4742\[email protected]\nWWW.ThePPCGroup.Com"; 
      // Build the email content. 
      $email_content = "Name: $name\n"; 
      $email_content .= "Email: $email\n\n"; 
      $email_content .= "Phone: $phone\n\n"; 
      $email_content .= "Prefered Time: $time\n\n"; 
      $email_content .= "Prefered Method: $method\n\n"; 
      $email_content .= "Message:\n$message\n"; 

      // Build the email headers. 
      $email_headers = "From: $name <$email>"; 

      // Send the email. 
      if (mail($recipient, $subject, $email_content, $email_headers)) { 
       // Set a 200 (okay) response code. 
       http_response_code(200); 
       mail($email, "Thank You!", $msg, "[email protected]") 
      } else { 
       // Set a 500 (internal server error) response code. 
       http_response_code(500); 
       echo "Oops! Something went wrong and we couldn't send your message."; 
      } 

     } else { 
      // Not a POST request, set a 403 (forbidden) response code. 
      http_response_code(403); 
      echo "There was a problem with your submission, please try again."; 
     } 

    ?> 

あなたはこのようなAjaxの関数に配列を返すことができ

function sendEmail() { 
    var form = $('#ajax-contact'); 
    var formMessages = $('#form-messages'); 
    var formData = $(form).serialize(); 


    $(form).submit(function(event) { 
     event.preventDefault(); 
    }); 

    $.ajax({ 
     type: 'POST', 
     url: $(form).attr('action'), 
     data: formData 
    }) 

    .done(function(response) { 
     $(formMessages).removeClass('error'); 
     $(formMessages).addClass('success'); 

     $(formMessages).text(response); 
     $('#name').val(''); 
     $('#email').val(''); 
     $('#tel').val(''); 
     $('#time').val(''); 
     $('#method').val(''); 
     $('#message').val(''); 
     window.location = 'http://www.theppcgroup.com/thank-you.html'; 
    }) 

    .fail(function(data) { 
     $(formMessages).removeClass('success'); 
     $(formMessages).addClass('error'); 

     if (data.responseText !== '') { 
      $(formMessages).text(data.responseText); 
     } else { 
      $(formMessages).text('Oops! An error occured and your message could not be sent.'); 
     } 
    }); 
    } 

if ($('#submit').on('click', function() { 
    sendEmail(); 
})); 
+4

PHPでリダイレクトを作成するには? => http://stackoverflow.com/questions/768431/how-to-make-a-redirect-in-phpとおそらく欺瞞です。 –

+0

OPあなたは既に 'window.location = ...'で成功したメールをリダイレクトしているようです – BeetleJuice

答えて

0

Ajaxのファイル:

// Send the email. 
      if (mail($recipient, $subject, $email_content, $email_headers)) { 
       // Set a 200 (okay) response code. 
       http_response_code(200); 
       mail($email, "Thank You!", $msg, "[email protected]"); 
       $response = array('status': true, 'message': "Thank You!"); 
      } else { 
       // Set a 500 (internal server error) response code. 
       http_response_code(500); 
       $response = array('status': false, 'message': "Oops! Something went wrong and we couldn't send your message.");     
      } 
     } else { 
      // Not a POST request, set a 403 (forbidden) response code. 
      http_response_code(403); 
      $response = array('status': false, 'message': "There was a problem with your submission, please try again.");    
     } 
     return json_encode($response); 

およびAJAXで

.done(function(response) { 
     $(formMessages).removeClass('error'); 
     $(formMessages).addClass('success'); 

     $(formMessages).text(response.message); 
     $('#name').val(''); 
     $('#email').val(''); 
     $('#tel').val(''); 
     $('#time').val(''); 
     $('#method').val(''); 
     $('#message').val(''); 
     if (response.status == true){ 
     window.location = 'http://www.theppcgroup.com/thank-you.html'; 
     } 
    }) 
関連する問題