是否可以访问$ _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
});
感谢您的帮助
答案 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()
来传递所有表单元素的值。