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);
    }
});

此外,如您所见,我跳过了将结果分配给变量。除非你在响应中不需要这些变量来做其他事情,否则它是完全没用的