使用AJAX将PHP数组转换为Javascript
我正在尝试编写我自己的第一个Web应用程序。服务器和客户机之间的数据通信应该使用AJAX建立。首先,我尝试使用以下JS代码段将userinput(HTML表单)从客户端传输到服务器端:使用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 : $("#
$("#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);
}
});