我正在尝试使用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键/值未成功,因此仅成功发送ip
和Array ( [user] => [ip] => )
。我检查了未发送的变量的值,它们都存在。我做错了什么?
答案 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”更改为元素以获取值