jQuery / Ajax:如何访问结果数组中的值
jQuery / Ajax: How to access values from result array
我使用以下 Ajax 调用从数据库中获取翻译。
调用本身有效并且 returns 以下结果。
有人能告诉我如何访问 Ajax 结果中数组的值,以便我可以将它们分配给我的变量吗?我得到一个错误或空变量并且无法找到使它工作的方法(我是数组的新手)。
注意: 本例中的 id 是唯一标识符,因此 Ajax 调用总是 returns 只有一行。
Ajax 调用:
$.ajax({
type: 'POST',
url: 'fetchTrans.php',
data: {
transId: transId
},
success: function(result){
var transDE = ''; // should be result['de']
var transEN = ''; // should be result['en']
var transDA = ''; // should be result['da']
var transES = ''; // should be result['es']
var transFR = ''; // should be result['fr']
var updateDate = ''; // should be result['updateDate']
$('#transId').val(transId);
$('#langDE').val(transDE);
$('#langEN').val(transEN);
$('#langDA').val(transDA);
$('#langES').val(transES);
$('#langFR').val(transFR);
$('#updateDate').val(updateDate);
}
});
Ajax 结果(示例):
array (
'de' => 'Ziffer',
'en' => 'digit',
'da' => 'cifret',
'es' => 'dígito',
'fr' => 'chiffre',
'updateDate' => '2020-05-09 19:40:58',
)
如果我在你那里我会怎么做:
首先将数组编码为json in PHP:
echo json_encode($array);
这样您最终会在 ajax 调用中返回 JSON。
然后我会相应地更改 AJAX(请注意,我添加了 JSON 类型不依赖于 jquery 数据类型自动检测:
$.ajax({
type: 'POST',
url: 'fetchTrans.php',
dataType: 'JSON',
data: {
transId: transId
},
success: function(result){
$('#transId').val(transId);
$('#langDE').val(result.de);
$('#langEN').val(result.en);
$('#langDA').val(result.da);
$('#langES').val(result.es);
$('#langFR').val(result.fr);
$('#updateDate').val(result.updateDate);
}
});
此外,如您所见,我跳过了将结果分配给变量。除非你在响应中不需要这些变量来做其他事情,否则它是完全没用的
我使用以下 Ajax 调用从数据库中获取翻译。
调用本身有效并且 returns 以下结果。
有人能告诉我如何访问 Ajax 结果中数组的值,以便我可以将它们分配给我的变量吗?我得到一个错误或空变量并且无法找到使它工作的方法(我是数组的新手)。
注意: 本例中的 id 是唯一标识符,因此 Ajax 调用总是 returns 只有一行。
Ajax 调用:
$.ajax({
type: 'POST',
url: 'fetchTrans.php',
data: {
transId: transId
},
success: function(result){
var transDE = ''; // should be result['de']
var transEN = ''; // should be result['en']
var transDA = ''; // should be result['da']
var transES = ''; // should be result['es']
var transFR = ''; // should be result['fr']
var updateDate = ''; // should be result['updateDate']
$('#transId').val(transId);
$('#langDE').val(transDE);
$('#langEN').val(transEN);
$('#langDA').val(transDA);
$('#langES').val(transES);
$('#langFR').val(transFR);
$('#updateDate').val(updateDate);
}
});
Ajax 结果(示例):
array (
'de' => 'Ziffer',
'en' => 'digit',
'da' => 'cifret',
'es' => 'dígito',
'fr' => 'chiffre',
'updateDate' => '2020-05-09 19:40:58',
)
如果我在你那里我会怎么做:
首先将数组编码为json in PHP:
echo json_encode($array);
这样您最终会在 ajax 调用中返回 JSON。
然后我会相应地更改 AJAX(请注意,我添加了 JSON 类型不依赖于 jquery 数据类型自动检测:
$.ajax({
type: 'POST',
url: 'fetchTrans.php',
dataType: 'JSON',
data: {
transId: transId
},
success: function(result){
$('#transId').val(transId);
$('#langDE').val(result.de);
$('#langEN').val(result.en);
$('#langDA').val(result.da);
$('#langES').val(result.es);
$('#langFR').val(result.fr);
$('#updateDate').val(result.updateDate);
}
});
此外,如您所见,我跳过了将结果分配给变量。除非你在响应中不需要这些变量来做其他事情,否则它是完全没用的