2017-01-24 23 views
0

電子メールアドレスを収集し、AJAX POSTリクエストを介してサーバーに送信するHTMLページ(index.html)があります。送信ボタンがクリックされると、javascript関数はAJAXを介して投稿要求を実行し、ページはそれ自体に送信されます。これを変更して、ページを別のページ(thankyou.html)に送信する必要があります。私はPHPでこれを行う方法がわかりません。フォームが送信され、AJAXクエリが実行されると、PHPページをリダイレクトする方法はありますか?PHP関数を呼び出すAJAXリクエスト後にフォームをリダイレクトするとき

ページをJavascriptまたはHTMLまたはPHPでリダイレクトする必要があるかどうかはわかりません。

これはindex.html形態である:

 <form class="email-form" method="POST" validate> 
      <div class="email-input-container register-info-email"> 
       <input class="email-input" type="email" autocapitalize="off" autocorrect="off" autocomplete="off" required name="MERGE0" id="MERGE0" placeholder="Email Address" pattern="[a-z0-9._%+-][email protected][a-z0-9-]+\.[a-z]{2,63}$" aria-label="Email Address"> 
       <input id="sub-button" type="submit" class="submit-button" value="Submit" > 
       <span class="success-message"><span class="sr-only">We got you</span></span> 
      </div> 
     </form> 

これはこれは、AJAX要求であるPHPでPOSTリクエスト(post.php

if (isset($_POST['email'])) : 

    $data = [ 
      'email' => $_POST['email'] 
    ]; 

    if (isset($_POST['platform'])) : 

      $data["device"] = $_POST['platform']; 

    endif; 

    syncMailchimp($data); 

endif; 

です:

 $.ajax({ 
      type: "POST", 
      url: 'post.php', 
      data: data, 
      success: function(data, status) { 

       var message = JSON.parse(data).message; 

       if (message == "error") { 

        $('.email-form small').html('An error has occurred. Please try submitting again.'); 
        smallHighlight(); 

       } else if (message == "subscribed") { 

        $('.email-form small').html('You are already subscribed'); 
        smallHighlight(); 

       } else { 

        $('.email-form').addClass('form-success'); 
        $('.email-form small').attr('style', ''); 

       } 

      }, 
+0

あなたは、ヘッダー – mplungjan

答えて

1

あなたの場合別のページにリダイレクトしたい場合は、フォームが正常に提出された後にこれを入れてください

window.location = "http://www.example.com/thankyou.html"; 

EDIT:このリダイレクトは、非同期呼び出しであるため、PHPで処理しないでください。あなたは、これは何とかあなたのスクリプト

を提出参照する必要があり、それはあなたがこれを使用することができますPHPで

+0

で、PHPからリダイレクト、PHPを呼び出した後にリダイレクトする必要がある場合、それはの成功機能に行くだろうAJAXコール? – ntaj

+0

はい、多かれ少なかれ次のようになります: '残りのコード... else { window.location =" http://www.example.com/thankyou.html "; } ' – jdrzejb

0

に役立ちます願っています。

header('Location: http://www.example.com/thankyou.html'); 

とJavascript

window.location.replace("http://www.example.com/thankyou.html"); 

または

window.location.href = "http://www.example.com/thankyou.html"; 
関連する問題