PHP $ _POST存在问题。然后我保存信息并检查$ _POST ['g_kcal'];返回
Notice: Undefined index: g_kcal in
此字段g_kcal计数输入更改后的所有输入字段值。它通过ajax返回名为='g_kcal'的新输入。
JavaScript的:
$('.box-body').change(function(){
var totalPointsKcal = 0;
$(this).find('input[name="kcal[]"]').each(function(i,n){
totalPointsKcal += parseFloat($(n).val(),10);
});
$.ajax({
type: 'post',
url: 'ajaxLoader.php',
data: {
galutinis_kcal:totalPointsKcal,
},
success: function (response) {
document.getElementById("galutinis").innerHTML=response;
}
});
});
ajaxLoader.php:
if(isset($_POST['galutinis_kcal'])) {
$kcal = $_POST['galutinis_kcal'];
echo "<input class='skaiciuokle kcal1' type='text' name='g_kcal' value=". round($kcal, 1) ." disabled>";
}
找不到自己的问题了。也许POST无法接收通过ajax发送的信息?
答案 0 :(得分:0)
尝试在Ajax POST中设置内容类型:
$.ajax({
type: 'post',
url: 'ajaxLoader.php',
data: {
galutinis_kcal:totalPointsKcal,
},
contentType: "application/json",
success: function (response) {
document.getElementById("galutinis").innerHTML=response;
$('.kcal1').trigger('change');
}
});
如果您没有设置Ajax通话的内容类型,则不会发送正文(数据)。
答案 1 :(得分:0)
在服务器端使用此代码获取通过AJAX请求发送的数据:
$info = json_decode(file_get_contents("php://input"));
if(isset($info->galutinis_kcal)){
$kcal = $info->galutinis_kcal;
echo "<input class='skaiciuokle kcal1' type='text' name='g_kcal' value=". round($kcal, 1) ." disabled>";
}
客户端的在发送请求之前使用JSON.stringify
$.ajax({
type: 'post',
url: 'ajaxLoader.php',
data: JSON.stringify({
galutinis_kcal:totalPointsKcal
}),
success: function (response) {
document.getElementById("galutinis").innerHTML=response;
}
});
答案 2 :(得分:0)
问题是输入字段设置为DISABLE。现在它工作正常