使用AJAX将PHP数组转换为Javascript

使用AJAX将PHP数组转换为Javascript,javascript,php,jquery,arrays,ajax,Javascript,Php,Jquery,Arrays,Ajax,我正在尝试编写我自己的第一个Web应用程序。服务器和客户机之间的数据通信应该使用AJAX建立。首先,我尝试使用以下JS代码段将userinput(HTML表单)从客户端传输到服务器端: $("#submit").on("click", function(e) { e.preventDefault(); $.ajax({ url : "ajax.php", type : "POST", data : $("#

我正在尝试编写我自己的第一个Web应用程序。服务器和客户机之间的数据通信应该使用AJAX建立。首先,我尝试使用以下JS代码段将userinput(HTML表单)从客户端传输到服务器端:

$("#submit").on("click", function(e) {
    e.preventDefault();

    $.ajax({            
        url : "ajax.php",
        type : "POST",
        data : $("#nodes").serialize(),
        dataType: "text",
        cache : false,
        success: function( data ) {
            console.log( data );
            $("#ajaxrequest").html(data);
        },
        error: function(xhr, desc, err) {
            console.log(xhr);
            console.log("Details: " + desc + "\nERROR: "+ err);
        }
    });
});
它起作用了。。。但现在,我想用以下方法将三种不同的数据(PHP-)数组从服务器转移到客户端:

<?php

echo json_encode($currentdata);
echo json_encode($maxmindata);
echo json_encode($chartdata);
当然没用了

这是控制台的输出:

> {"max":{"temperature":"21.14","humidity":"39.96","pressure":"1022.2"},"min":{"temperature":"21.08","humidity":"38.72","pressure":"1022.0"}}{"current":{"ID":"755","temperature":"21.43","humidity":"40.09","pressure":"1022.8","voltage":"3.337","datetime":"2017-04-18
> 20:46:31"}}[{"ID":"570","nodeId":"Node1","humidity":"38.83","temperature":"21.08","pressure":"1022.2","voltage":"3.323","datetime":"2017-04-18
> 20:00:02"},{"ID":"571","nodeId":"Node1","humidity":"38.72","temperature":"21.08","pressure":"1022.1","voltage":"3.321","datetime":"2017-04-18
> 20:00:17"},{"ID":"572","nodeId":"Node1","humidity":"38.84","temperature":"21.1","pressure":"1022.1","voltage":"3.321","datetime":"2017-04-18
> 20:00:32"},

如果你不明白我想问的问题:我如何将不同的PHP数组分配给不同的JS变量?我需要再编程一个$.ajax吗

好吧,如果评论没有帮助,这里有一个答案

使用所有值创建数组:

<?php
$result_array = array(
    'current_data' => $currentdata,
    'max_min_data' => $maxmindata,
    'chart_data' => $chartdata,
);

echo json_encode($result_array);

创建数组数组。这个注释没有任何帮助。你正在一个接一个地发送3个数组对象。示例:在控制台上有
。}[{..
。创建一个包含3个数组的新数组并返回此数组。Niclas,如果@u_mulder的评论没有帮助,唯一有帮助的就是研究。谢谢你!@AndreiGheorghiu我从两周前开始学习JS和PHP。我花了将近一天的时间解决这个问题,所以请不要因为我的不了解而责备我!好的,@Niclasress。我将接受这个问题对此负责。撇开玩笑不谈,当有人告诉你该做什么时,你不会用“这没什么帮助”来回答。你至少可以做的是感谢和(再次)回答search.Yep,@AndreiGheorghiu我同意你的看法,但是如果你花了很多时间在一些愚蠢的问题上,却看不到任何解决方案,那么应该允许它在stackoverflow中提问。恕我直言,@Niclas,你完全错了。它致力于程序员。当建议“使用数组”时,用“这没有任何帮助”来回答,你根本没有资格。祝贺你有学习的意愿,坚持下去,你很快就会提出高质量的问题,你将能够理解提供的建议和答案。
<?php
$result_array = array(
    'current_data' => $currentdata,
    'max_min_data' => $maxmindata,
    'chart_data' => $chartdata,
);

echo json_encode($result_array);
$.ajax({            
    url : "ajax.php",
    type : "POST",
    data : $("#nodes").serialize(),
    // set dataType as `json`, this will create json object from response automatically
    dataType: "json",   
    cache : false,
    success: function( data ) {
        console.log( data );
        console.log( data.current_data );   // key is the same as in php array
        //$("#ajaxrequest").html(data);
    },
    error: function(xhr, desc, err) {
        console.log(xhr);
        console.log("Details: " + desc + "\nERROR: "+ err);
    }
});