Jquery Ajax POST不发送所有数据

时间:2014-02-01 02:41:23

标签: javascript php jquery ajax

我正在尝试使用AJAX POST到页面并显示结果,但它没有发送所有参数。

function change_page(button){
    var parent_div = $(button.parentNode);
    var param = parent_div.attr("id");
    var page = this.value;
    var user = $("#user").val();
    var ip = $("#ip").val();
    $.ajax({
        url: "gui_info.php",
        type: 'POST',
        data: { param : page, "user" : user, "ip" : ip },
        dataType: "html",
        success: function(data){
            parent_div.html(data);
            alert(data);
        }
    }); 
}

在它发送的php页面上,我正在使用print_r($_POST)查看实际收到的参数。由于响应为user而param键/值未成功,因此仅成功发送ipArray ( [user] => [ip] => )。我检查了未发送的变量的值,它们都存在。我做错了什么?

4 个答案:

答案 0 :(得分:4)

您没有在请求中看到变量,因为其值未定义。未定义的值不包含在jQuery POST中。

例如,发送这样的数据时......

$.ajax({
  type: 'POST',
  data: {
    a: 1,
    b: undefined,
    c: false,
    d: null
  }
});

...这些是XHR请求中传递的参数:

a: 1
c: false
d:

答案 1 :(得分:0)

data: {
    page: param,
    url: url,
    ip: ip
}

答案 2 :(得分:0)

你所要做的就是:

$.ajax({
    url: "gui_info.php",
    type: 'POST',
    data: { 
      param : page, 
      user : user, 
      ip : ip 
     },
    dataType: "json",   // pass json in there
    success: function(data){
        parent_div.html(data);
        alert(data);
    }
 }); 

答案 3 :(得分:0)

试试这个,

page = $(button).val() //If "button" is an element

而不是

page = this.value

将“this”更改为元素以获取值