【问题标题】:Sending and using POST variables using jQuery.ajax()使用 jQuery.ajax() 发送和使用 POST 变量
【发布时间】:2011-03-01 04:34:00
【问题描述】:

是否可以在不将所有表单元素附加到数据属性的情况下访问 $_POST 变量?

Ajax 调用:

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

访问变量:

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

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

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

感谢您的帮助

【问题讨论】:

    标签: php jquery ajax post methods


    【解决方案1】:

    您可以使用表单上的.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 时它可能也可以工作(以最基本的形式)。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2011-07-20
        • 2018-08-19
        • 1970-01-01
        • 2012-10-01
        相关资源
        最近更新 更多