使用jQuery.ajax()发送和使用POST变量

时间:2010-06-08 14:01:21

标签: php jquery ajax post methods

是否可以访问$ _POST变量而无需将所有表单元素附加到数据属性中?

Ajax电话:

$.ajax({
       type: "POST",
       url: "ajax/user.php",
       data: {**data**},
       success: this.saveUserResponse
     });

访问变量:

if(isset($_POST['saveUser']) && $_POST['saveUser']){
  $user = $_POST['username'];
  ...
  ...  
  exit;
}

或者我是否需要将所有表单元素附加到data属性,例如:

var userId = $('#userId').val();
$.ajax({
       type: "POST",
       url: "ajax/user.php",
       data: {user : userId, etc...  },
       success: this.saveUserResponse
     });

感谢您的帮助

2 个答案:

答案 0 :(得分:3)

您可以使用表单上的.serialize()方法为您执行此操作。

$.ajax({
       type: "POST",
       url: "ajax/user.php",
       data: $("#formid").serialize(),
       success: this.saveUserResponse
     });

请参阅Help with Jquery and multiple forms on a page

您还可以使用jQuery Form plugin使这项工作变得更加简单。使用它,您可以在HTML(您已经拥有)中创建普通表单,使用method="POST"action="ajax/user.php"进行设置,然后在加载时调用$("#formid").ajaxForm(this.saveUserResponse)。这会设置所有内容,并具有额外的优势,即当JavaScript被禁用时,它可能也会起作用(以大多数基本形式)。

答案 1 :(得分:2)

jQuery只会发送您明确传递给服务器的数据。

您可以通过传递$('form').serialize()来传递所有表单元素的值。