2017-09-30 10 views
0

EDITを働いていないリダイレクト:私は、フォームを手動で微提出するが、javascriptを何も言及する必要がありますフォームを送信して

を発生するようです、私は、ページの読み込みでのautoSubmitするフォームを取得しようとしてからリダイレクトしていますユーザー。理由はこれはPHPページの一部であり、データは自分のデータベースに入れておく必要がありますが、変数をサードパーティのSMSプラットフォームにPOSTしてから、ユーザーダッシュボードに戻します。

は私のフォームは、次のようになります。

<html> 
    <form action="https://www.example.com" id="myForm" method ="POST"> 
     <input type="hidden" name="apiKey" value="withheld"> 
     <input type="hidden" name="message" value="<?php echo $club_name ?> have requested you to play for them this weekend. Please login to your account to see more information and accept."> 
     <input type="hidden" name="to" value="<?php echo $to ?>"> 
     <input type="hidden" name="from" value="withheld"> 
     <input type="submit" name="submit" id="submit" value="Submit"> 
    </form> 
</html> 

これが動作しているようですので、細かい私はあるJavascriptが間違っていると仮定します。あなたは 名とは異なる名前を使用する必要が

<script> 
document.getElementById('myForm').submit(); 
    window.location.replace("https://www.example.com"); 
</script> 
+0

スクリプトはどこに置いたのですか?コンソールのエラーをチェックしましたか? – adeneo

+0

あなたのコードでは実際には動作しません。私はリダイレクトを推測する。フォームを送信してから、リダイレクトの一種であるサーバーレスポンスを取得しています。サーバーコールが保留中の場合、 'location'オブジェクトの変更はブラウザによってブロックされます。 – Teemu

+0

テムムに感謝していませんでしたが、フォーム自体は私をイライラさせてくれるものではありません。 – Rockhopper

答えて

2

=すべての名前属性が のフォームのプロパティとして設定されているため、 のデフォルトのsubmitプロパティをオーバーライドし、既定のフォームメソッド "submit()"は省略されているため、 "submit"

https://developer.mozilla.org/de/docs/Web/API/HTMLFormElement "名前付き入力はプロパティとして所有者フォームインスタンスに追加され、同じ名前を共有する場合はネイティブプロパティを上書きできます(たとえば、名前付きactionという名前のフォームのactionプロパティのフォームは、フォームのアクションHTML属性)。 "

+0

この "ありがとう"のことをありがとう、ページは今はリダイレクトされていますが、フォームは依然として送信しません。 – Rockhopper

+0

私の推測:ブラウザーでは、両方の行がWebリクエストであり、いつものように(そして、通常は期待通りに、同じページの別のリンクでaaリンクをクリックするとすぐに)、最初の要求はキャンセルされ、 2番目の操作が実行されます。 AFAIKには2つの選択肢があります。1)提出先はリダイレクトを行う必要があります。 2)提出しないで、ajax経由でデータを投稿し、ajaxの返信で、単に結果を無視してリダイレクトします。 –

0

あなたのコードでは、submit()関数はフォームを送信しようとし、ページを変更してから関数を置き換えてフォームを送信できないようにし、ページをリダイレクトするので意味がありません。 js経由でこれを行う正しい方法は、フォームをajax経由で送信し、Ajaxの成功コールバックで実行することです。document.getElementById('myForm').submit()

関連する問題