0

私は2つのフォームを持っており、それらを検証して同じページに送信します。その後、リクエストごとに、私の応答はphpファイルとは異なります。だから私の質問は、どうすれば別のajaxリクエストを見つけることができるかです。私は試した

if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')

しかし、これはすべてのリクエストに対して機能します..

      $(document).ready(function(){
$("#form1").validate({
     debug: false,
rules: {

passwordid:"required",
username:"required",
password_again :"required",
password_again:{
  equalTo: "#passwordid"
},
 email: {
 required: true,
 email: true
}
 },
messages: {

email: "Please enter your valid email address.",
username: "Please enter your username",
passwordid:"Enter Password",
password_again:"Please enter the same value",
},
  submitHandler: function(form) {

$.ajax
({
type: "POST",
url: "action.php",
data: $('#form1').serialize(),
cache: false,
success: function(html)
{

    $(".result").prepend(html);





  }
        });
    }
    });

$("#form2").validate({
     debug: false,
rules: {

datepicker:"required",
hourid1:"required",
minuteid1:"required",
dhour:"required",
dminute:"required",
   },
messages: {

datepicker:"Please enter your date",
hourid1: "Enter your time",
minuteid1:"Enter your time",
dhour:"Enter your duration",
dminute:"Enter your duration",
 },
  submitHandler: function(form) {

  $.ajax
  ({
  type: "POST",
  url: "action.php",
  data: $('#form2').serialize(),
  cache: false,
  success: function(html)
  {

   $(".result1").prepend(html);





}
        });
    }
});
});

私のajaxリクエストを特定する簡単な方法が必要です..どんな助けも感謝します..事前に感謝します..そして、これが愚かな質問に起こったらごめんなさい...

4

2 に答える 2

1

どのフォームがリクエストを生成したかを示す追加のパラメーターを渡さないのはなぜですか? これは、サーバーがフォームを区別するために使用できる何らかの識別子を使用して、各フォームに非表示の入力フィールドを追加することで簡単に実現できます。

于 2013-04-02T18:30:12.940 に答える
1

特定の名前の非表示の入力を各フォームに追加するだけですが、値は異なります。シリアル化して送信すると、サーバー側でアクセスできます。

if ( $_POST['myFormsName'] == 'form1' ) {

}
于 2013-04-02T18:30:40.027 に答える