2016-12-27 5 views
0

私はフォームアクションPOSTを使用してフォームを送信し、JavaScriptを送信して、ユーザーをありがとうページにリダイレクトします。 POSTはJavaScriptコードを追加する前に動作していましたが、実装されたフォームは正しくリダイレ​​クトされましたが、POSTページを呼び出して値を処理しなくなりました。フォームをJavaScriptで起動しても、フォームから値を渡しません。

<form action="https://www.website.com/leads.php" method="post" id="bm-form" class="form-style" novalidate="novalidate"> 
    <!--form fields here--> 
<div> 
    <input class="btn theme-btn" value="Process" type="submit"> 
</div> 
</form> 

Javascriptを

<script type="text/javascript"> 
window.onload=function() { 
    document.getElementById("bm-form").onsubmit=function() { 
    window.location.replace("https://www.website.com/thank-you.html"); 
    return false; 
    } 
} 
</script> 
+2

フォームデータを送信しているときにクライアントをページ上に保持したい場合は、ajaxを使用することをお勧めします。 Ajaxが完了したら、投稿が成功したことを確認/確認してから、別のページにリダイレクトしたり、ありがとうございます。 http://www.w3schools.com/xml/ajax_intro.asp – NewToJS

+0

これは私が使った解決策でした、ありがとうございます!あなたが答えにこれを加えれば、それを受け入れられた答えとしてマークします。 – Ryeboflaven

答えて

0

JavaScriptがフォーム送信の正常な動作をキャンセルし、代わりに別のページをロードするようにブラウザを語っています。

ありがとうページにリダイレクトするには、https://www.website.com/leads.phpには302ステータスとLocation HTTP応答ヘッダーが返されます。 JavaScriptを使用しないでください。

+0

上記のインデックスページからすべてを実行できますか?そのページは他のリードを処理するために使用され、変更されることはありません(私の決定ではなく、それに従わなければなりません)。 – Ryeboflaven

0

javascriptからではなく、PHPコード(leads.php)サーバー側からリダイレクトする必要があります。あなたがそれを追加したjavascriptのロジックは、フォームの送信を上書きし、投稿は決して行われません。リダイレクトだけです。

関連する問題