检测到同一文件的不同ajax请求

时间:2013-04-02 18:28:07

标签: jquery ajax request

我有两种形式,我验证并发送到同一页面,之后我需要,对于每个请求,我的响应与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请求..非常感谢..感谢提前..对不起,如果这发生在一个愚蠢的问题......

2 个答案:

答案 0 :(得分:1)

为什么不传递一个额外的参数来指示哪个表单生成了请求?这可以通过在每个表单上添加隐藏的输入字段以及服务器可用于区分表单的某种标识符来轻松实现。

答案 1 :(得分:1)

只需为每个表单添加一个具有给定名称的隐藏输入,但具有不同的值,并且在序列化和发送时,您将在服务器端访问该表:

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

}