如何将.post
返回数据分配给variable.actually我正在尝试更新高图表。
数组中的高聊天数据。
的JavaScript
$.post( "system/return_pages/counter.txt", function(data) {//return value data});
以上.post
mathod给我返回值这是我的访客价值数量。我应该在高聊天中需要这个值。但真实场景我试图制作全局变量并分配它。但是当我放入高图表数组比没有显示任何值。我正在显示高图表代码和我所做的。
JavaScript
$(function () {
var chart;
var date = new Date();
var d = date.getDate();
var day = (d < 10) ? '0' + d : d;
var m = date.getMonth() + 1;
var month = (m < 10) ? '0' + m : m;
var yy = date.getYear();
var year = (yy < 1000) ? yy + 1900 : yy;
var count = "";
$.post( "system/return_pages/counter.txt", function( value ) { count =data; //count value 35});
var date = day + "/" + month + "/" + year;
$(document).ready(function() {
Highcharts.setOptions({
colors: ['#32353A']
});
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'column',
margin: [ 50, 30, 80, 60]
},
title: {
text: 'Visits this month'
},
xAxis: {
categories: [
date
],
labels: {
rotation: -45,
align: 'right',
style: {
fontSize: '9px',
fontFamily: 'Tahoma, Verdana, sans-serif'
}
}
},
yAxis: {
min: 0,
title: {
text: 'Visits'
}
},
legend: {
enabled: false
},
tooltip: {
formatter: function() {
return '<b>'+ this.x +'</b><br/>'+
'Visits: '+ Highcharts.numberFormat(this.y, 0);
}
},
series: [{
name: 'Visits',
data: [count],
dataLabels: {
enabled: false,
rotation: 0,
color: '#F07E01',
align: 'right',
x: -3,
y: 20,
formatter: function() {
return this.y;
},
style: {
fontSize: '11px',
fontFamily: 'Verdana, sans-serif'
}
},
pointWidth: 20
}]
});
});
});
高图表null的结果我的意思是每当我是JavaScript新手时计数变量null。我不知道我的代码中有什么问题。请帮忙。
答案 0 :(得分:1)
这是因为AJAX是异步 - 当变量get被分配时,其余的代码已经运行,输入回调。一旦你的AJAX请求完成,你可以传递一个函数来运行,这个函数应该包含要完成的所有逻辑。
$.post( "system/return_pages/counter.txt", function( value ) {
//value is only accessible in here
//Either do your logic in here, or pass "value" to another function
});
简而言之,将所有高图表逻辑放入AJAX请求的回调中。
答案 1 :(得分:0)
.post
方法是异步的(a
中的ajax
)。 $ .post的返回值是jqXHR object,后续代码中的数据库没有任何内容。
在相关说明中,您可能有错误。我想
$.post( "system/return_pages/counter.txt", function( value ) { count =data; //count value 35});
应该是
$.post( "system/return_pages/counter.txt", function( data) { count =data; //count value 35});
答案 2 :(得分:0)
你有trhee选项,(一个坏的和两个好的):
(好)创建图表内部回调:
$.post( "system/return_pages/counter.txt", function( value ) {
count = data; //count value 35
chart = new Highcharts.Chart(options);
});
(好)创建空图表(第一个!),并在回调更新该图表:
chart = new Highcharts.Chart(options);
$.post( "system/return_pages/counter.txt", function( value ) {
count = data; //count value 35
chart.series[0].setData([count]);
});