我使用ajax提交jQuery输入文本和输入文件。
$("#uploadForm").on('submit',(function(e)
{
e.preventDefault();
var badgeID = $("#badgeID").val();
var firstName = $("#firstName").val();
var lastName = $("#lastName").val();
var emailAddress = $("#emailAddress").val();
var firstNameMask = $("#firstNameMask").val();
var lastNameMask = $("#lastNameMask").val();
var emailAddressMask = $("#emailAddressMask").val();
$.ajax(
{
url: "updateAccountSetting.php",
type: "POST",
data: new FormData(this),
contentType: false,
cache: false,
processData:false,
success: function(data)
{
alert(data.firstNameVal);
$("#firstNameMask").val(data.firstNameVal);
$("#lastNameMask").val(data.lastNameVal);
$("#emailAddressMask").val(data.emailAddressVal);
$(".firstName").html(data.firstNameVal);
$("#btnUpdateAvatar").attr({disabled: true, value: "Update"}).addClass('btn_inact').removeClass('btn_act');
$('#firstName, #lastName, #emailAddress').attr('readonly', false);
$('.uploadSuccess').show();
$("#btnUpdateAvatar").attr('disabled', true).addClass('btn_inact').removeClass('btn_act');
}
});
}));
我已经尝试过上面的代码,直到处理成PHP文件并且它完美无缺。
但是当我尝试:
时,为什么我无法获得价值alert(data.firstNameVal);
警告的结果是:undefined
。
如果我只提醒数据
alert(data);
结果是:
答案 0 :(得分:2)
试试这个:
success: function(data)
{
var result = JSON.parse(data);
alert(result.firstNameVal);
// rest of your code
}
说明: 对于JS来说,它只是一个字符串。您必须将其转换为JSON-Object。
答案 1 :(得分:0)
您可以解决在PHP中添加正确的标头信息或在JavaScript中解析响应的问题。
PHP解决方案:在输出之前添加此行(可能在脚本之上)
header('Content-Type: application/json');
JS解决方案:将响应字符串解析为json:
var dataObj = JSON.parse(data);
答案 2 :(得分:0)
您从 updateAccountSetting.php 网址获得JSON响应。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。您必须将JSON数据转换为Javascript对象。 看看下面的
success: function(data)
{
var data =$.parseJSON(data);//convert json data to javascript object
$("#firstNameMask").val(data.firstNameVal);
$("#lastNameMask").val(data.lastNameVal);
$("#emailAddressMask").val(data.emailAddressVal);
$(".firstName").html(data.firstNameVal);
$("#btnUpdateAvatar").attr({disabled: true, value: "Update"}).addClass('btn_inact').removeClass('btn_act');
$('#firstName, #lastName, #emailAddress').attr('readonly', false);
$('.uploadSuccess').show();
$("#btnUpdateAvatar").attr('disabled', true).addClass('btn_inact').removeClass('btn_act');
}