我使用以下内容发送数据:
$(".save_post").on("click", function() {
var saveId = $(".my_post_id").attr("data-id");
console.log(saveId);
$.ajax({
url: "save.php",
data :saveId,
type: 'POST',
success: function(json_object) {
console.log(json_object);
$(".save_post").text("Data has been saved.");
},
error: function(json_object) {
console.log(json_object);
$(".save_post").text("Failed to save data !");
}
});
});
我console.log(saveId);
时的控制台值 248
当我点击按钮发送数据时,其文字显示:数据已保存。
但是当我打开save.php时,我得到一个空页。
PHP代码:
<?php
$post_data = $_POST['data'];
echo $post_data;
?>
我要做的就是保存一个javascript变量,以便以后能够检索它。
答案 0 :(得分:2)
您忘记发送包含以下值的密钥:
data: { data: saveId }
您还应该使用data()
方法获取data-*
属性,而不是attr()
。这是一个完整的例子:
$(".save_post").on("click", function() {
$.ajax({
url: "save.php",
data: { data: $(".my_post_id").data("id") },
type: 'POST',
success: function(response) {
console.log(response);
$(".save_post").text("Data has been saved.");
},
error: function(x, s, e) {
$(".save_post").text("Failed to save data !");
}
});
});
请注意,这假设您只有一个.my_post_id
元素。如果您有多个,那么data-id
将只从DOM中找到的第一个读取。
此外,没有“JSON对象”这样的东西。提供给success
处理程序的参数是一个对象(或数组),它已从响应中的JSON格式字符串反序列化。
同样,error
处理程序不接受包含JSON的参数,因此签名不正确。如果您不确定哪些jQuery AJAX处理程序可用的参数,我建议检查jQuery $.ajax() documentation。
答案 1 :(得分:0)
您需要发送JSON数据,以便php可以使用密钥
来检索相同的数据$(".save_post").on("click", function() {
var saveId = $(".my_post_id").attr("data-id");
console.log(saveId);
$.ajax({
url: "save.php",
data : {'data':saveId}, // Add object
type: 'POST',
success: function(json_object) {
console.log(json_object);
$(".save_post").text("Data has been saved.");
},
error: function(json_object) {
console.log(json_object);
$(".save_post").text("Failed to save data !");
}
}); });
答案 2 :(得分:-1)
试试这个:
$post_data = $_POST;
echo $post_data;
它适用于你。