2016-07-25 3 views
0

PHP用の簡単なPOSTスクリプトがありますが、送信ボタンをクリックすると実行され、スクリプトディレクトリ(例:localhost/sendMail/test.php)に移動します。アラートボックスを投稿してから、スクリプトに行き、その後、送信ページにリダイレクトするのではなく、ページに留まることは可能ですか?スクリプトの実行後にリダイレクトをキャンセルするPHP

これは私のスクリプトです。

<?php 
$subject = 'Your website: Contact'; // Subject of your email 
$to = 'myemail'; // Enter recipient's E-mail address 
$emailTo = $_REQUEST['email']; 

$headers = "MIME-Version: 1.1"; 
$headers .= "Content-type: text/html; charset=iso-8859-1"; 
$headers .= "From: " . $emailTo . "\r\n"; // Sender's E-mail 
$headers .= "Return-Path:". $emailTo; 

$body = 'You have received a new inquiry!' . "\n\n"; 
$body .= 'Name: ' . $_REQUEST['name'] . "\n"; 
$body .= 'Email: ' . $_REQUEST['email'] . "\n"; 
$body .= 'Phone: ' . $_REQUEST['phone'] . "\n\n"; 
$body .= 'Message: ' . $_REQUEST['message']; 

if($_REQUEST['name'] != "" && $_REQUEST['email'] != "" && $_REQUEST['phone'] != "" && $_REQUEST['message'] != "") 
{ 
    if (@mail($to, $subject, $body, $headers)) 
    { 
     // Transfer the value 'sent' to ajax function for showing success message. 
     echo 'sents'; 
    } 
    else 
    { 
     // Transfer the value 'failed' to ajax function for showing error message. 
     echo 'failed'; 
    } 
} 
else 
{ 
    $message = "Invalid fields!"; 
    echo "<script type='text/javascript'>alert('$message');</script>"; 
    //header("Location: http://localhost/abtek/contact.html"); 
    exit; 
} 
?> 

は、アラートが実行されたときに、それはスクリプトに行くから、それを停止することが可能である、とのフィールドはすべて提出する有効になるまでの代わりにページに滞在しますか?また、アラートを再度表示し、リダイレクトを行う代わりにページに留まるように提出されたときも同様です。

ご協力いただければ幸いです。

+0

AJAXを使用してください。 Googleそれ! – pioneer

+0

あなたが使用しているフレームワークによっては、$ messageを返すのではなく、exit($ message)を使う必要があります。私は対処しなければならない主要な枠組みを知っています。 – VikingBlooded

答えて

0

フォームをajax/jqueryで送信し、リダイレクトを停止できます。ここを参照してください:Stackoverflow

0

あなたはこのように、jQueryのを使用することができます。

$('#my-submit').on('click', function(e){ 
    e.preventDefault(); // prevents regular form submission 
    $.ajax({ 
     url: 'localhost/sendMail/test.php', 
     data: $('form').serialize(), 
     success: function(result){ 
      alert('Message: ' + result); 
     }, 
     error: function(err){ 
      alert(err) 
     } 
    }) 
}); 

をごPHPであなただけのより良いエラーを処理するためにecho $message;を行う必要があります。 jQuery/AJAXについては、JSONのような爆発的なオプションがありますので、ぜひお読みください。

関連する問題