1

ユーザー名とパスワードを含む HTML フォームがあります。送信ボタンをクリックしたら、2 つの異なるサーバーで 2 つの異なる PHP メソッドに投稿したいと考えています。これはどのように行うことができますか?これは HTML フォームを使用して実行できますか? または、JavaScript を使用する必要がありますか? 助言がありますか?

アップデート

次のコードを試しましたが、うまくいきません。ここでどこが間違っていますか?前もって感謝します..!

<!DOCTYPE html><!--HTML5 doctype-->
<html>
    <head>
        <title id="login_form">Login Form testing</title>
        <script type="text/javascript" src="//code.jquery.com/jquery-1.7.2.min.js"></script>
        <script type="text/javascript">

         $('#loginform').submit(function(){
               $("form" ).on( "submit", function( event ) { 
      event.preventDefault(); // prevent the default submission behavior
      var data = $(this).serialize(); // gather data from the form and serialize it
      $.post('URL_1', data, successAction1); // post it to destination 1
      $.post('URL_2', data, successAction2); // post it to destination 2
 });

 var successAction1 = function() { alert("Success one");};
 var successAction2 = function() { alert("Success two");};


});
        </script>
        </head>
        <body>
        <form id="loginform" action="">
<fieldset >
<legend>Login</legend>
<input type='hidden' name='submitted' id='submitted' value='1'/>

<label for='username' >UserName*:</label>
<input type='text' name='username' id='username'  maxlength="50" />

<label for='password' >Password*:</label>
<input type='password' name='password' id='password' maxlength="50" />

<input type='submit' name='Submit' value='Submit' />

</fieldset>
</form>
        </body>
4

3 に答える 3

3

たとえば、AJAXを使用して投稿できます。JQueryライブラリ:

 $( "form" ).on( "submit", function( event ) { // listen to form submission (use whatever selector suits you, but make sure it is the form itself)
      event.preventDefault(); // prevent the default submission behavior
      var data = $(this).serialize(); // gather data from the form and serialize it
      $.post('URL_1', data, successAction1); // post it to destination 1
      $.post('URL_2', data, successAction2); // post it to destination 2
 });

 var successAction1 = function() { /*what to do after 1st post*/};
 var successAction2 = function() { /*what to do after 2nd post*/};

$.serialize$.postに関するAPIドキュメントを読むことをお勧めします

于 2013-06-20T10:05:34.360 に答える
2

はい、これは実行できますが、javascript が必要になります。

これがあなたのフォームであると仮定します:

<form id="#login">
  <p>
   <label>
     Username:
     <input type="text" name="username" />
   </label>
  </p>
  <p>
    <label>
      Password:
      <input type="password" name="password" />
    </label>
  </p>
  <p>
    <button type="submit">Login</button>
  </p>
</form>

次に、この JavaScript を使用して開始します。

$('#login').on('submit', function(e) {
  e.preventDefault(); // stops the normal functionality of the form
  $.ajax({
    url: 'http://website1.com',
    data: $(this).serialize(),
    success: (data) {
      // do whatever
    }
  });
  $.ajax({
    url: 'http://website2.com',
    data: $(this).serialize(),
    success: (data) {
      // do whatever
    }
  });
});

このソリューションを機能させるには、ページに jQuery をインストールする必要があります。

クエリ ajax の詳細については、http://api.jquery.com/jQuery.ajax/を参照してください。

また、実際に別のドメイン名で別の Web サイトに投稿している場合は、クロスオリジンの問題が発生します。ここでの解決策は、CORS を使用することです。stackoverflow で多くの解決策を見つけることができます。

于 2013-06-20T10:09:16.703 に答える
1

JavaScript の onclick 関数を使用して、2 つの関数を呼び出します。ajaxを使う

于 2013-06-20T10:02:38.930 に答える