Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery/Ajax:如何从结果数组访问值_Jquery_Ajax_Associative Array - Fatal编程技术网

jQuery/Ajax:如何从结果数组访问值

jQuery/Ajax:如何从结果数组访问值,jquery,ajax,associative-array,Jquery,Ajax,Associative Array,我使用以下Ajax调用从数据库中获取翻译。 调用本身工作并返回以下结果 有人能告诉我如何在Ajax结果中访问数组中的值,以便将它们分配给变量吗?我要么得到一个错误,要么得到一个空变量,但找不到一种方法来实现这一点(我是数组新手) 注意:本例中的id是唯一标识符,因此Ajax调用始终只返回一行 Ajax调用: $.ajax({ type: 'POST', url: 'fetchTrans.php', data: { transId: transId

我使用以下Ajax调用从数据库中获取翻译。
调用本身工作并返回以下结果

有人能告诉我如何在Ajax结果中访问数组中的值,以便将它们分配给变量吗?我要么得到一个错误,要么得到一个空变量,但找不到一种方法来实现这一点(我是数组新手)

注意:本例中的id是唯一标识符,因此Ajax调用始终只返回一行

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);
    }
});
array (
  'de' => 'Ziffer',
  'en' => 'digit',
  'da' => 'cifret',
  'es' => 'dígito',
  'fr' => 'chiffre',
  'updateDate' => '2020-05-09 19:40:58',
)
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);
    }
});
array (
  'de' => 'Ziffer',
  'en' => 'digit',
  'da' => 'cifret',
  'es' => 'dígito',
  'fr' => 'chiffre',
  'updateDate' => '2020-05-09 19:40:58',
)

如果我告诉你,我会怎么做:

首先在PHP中将数组编码为json:

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

另外,正如您所注意到的,我跳过了将结果分配给变量。除非您在响应中不需要这些变量,否则它是完全无用的

JS中接收到的
结果是什么?@VLAZ:result是我上面发布的。它是PHP MySQLi查询的结果。但是JS得到的数据是什么,这是我的问题stion.What is
result
-是字符串吗?是用什么东西包起来的吗?非常感谢-这看起来很不错。现在再试一次并报告。效果非常好-再次感谢!我们将尽快接受这一正确答案。