2016-10-06 15 views
0

ページの読み込み時にフォームを送信しようとしています。フォームを送信ページの読み込み時に自動的にフォームを送信する

<?php if($abc == $xyz){ ?> 
<form action="register.php" id="testform"> 
...form content... 
</form> 
<?php } else{ ?> 
Error 
<?php } ?> 

<script type="text/javascript"> 
window.onload = function(){ 
document.getElementById('testform').submit(); 
}; 
</script> 

オートが正常に動作しますが、送信中にそれが条件<?php if($abc = $xyz){ ?>を再チェックされます。同じアクションをやり直す方法を教えてください。

+1

。最初にページの読み込み時に自動提出するフォームが必要なのはなぜですか? – charlietfl

+0

私は支払いゲートウェイを統合しています。前のページにフォームを送信してこのページのデータを取得しています。だから私は最初にデータベースに保存してから支払いゲートウェイにリダイレクトする必要があります。上のコードは理解のためのものです。 –

+1

あなたがこの同じページに戻ってきたら、同じコードをもう一度実行して、質問が本当にクリアなものでないようにしてください。 – charlietfl

答えて

1

Jqueryを使用できる場合は、jqueryの回答があります。

これはjquery投稿要求を使用していますが、応答は無視しています。

window.onload = function(){ 
    $.post('server.php', $('#testform').serialize()) 
}; 

この1つはjqueryのPOSTリクエストを使用しますが、レスポンスと協力しています。唯一の `=`使用して有効な比較ではありません

window.onload = function(){ 

    var url = "register.php"; 

    $.ajax({ 
      type: "POST", 
      url: url, 
      data: $("#testform").serialize(), // serializes the form's elements. 
      success: function(data) 
      { 
       alert(data); 
      } 
     }); 

    return false; // avoid to execute the actual submit of the form. 
}); 

Complete reference of jquery form submit

+0

ありがとう..その仕事 –

+0

私はregister.phpページにリダイレクトしたいのですが?私は同じページで結果を必要としません。 –

+0

は、alertの代わりにsucessコールバックで、位置を 'register.php'に変更するだけです – Sravan

1

document.getElementById( 'testform')を使用するとします。 ページが再読み込みされ、その理由を再確認する理由 ページの再読み込みを避けるために、ajax submit.expデータをsubmit.phpアクションに使用できます。 Jqueryを使用した例Ajax

$.ajax({ 
    method: "POST", 
    url: "register.php", 
    data: { name: "John", location: "Boston" } 
}) 
    .done(function(msg) { 
    alert("Data Saved: " + msg); 
    }); 

希望します!