在ajax中,我得到了values
变量的值,但这些值没有进入items变量。这是什么原因?
我做错了什么?在onload
函数内,values
变量被警告为未定义。有谁可以帮助我吗?谢谢。
使用的代码如下:
<script type="text/javascript" language="javascript">
var values;
$.ajax({
cache : false,
type: "GET",
url: 'chartvalues',
format:'json',
success: function(response)
{
//alert(response);
values = response;
//alert (values);
}
});
window.onload = function () {
onLoadDoc();
}
var chart1;
function onLoadDoc() {
chart1 = new cfx.Chart();chart1.getAnimations().getLoad().setEnabled(true);
var axisY = chart1.getAxisY();
axisY.setMin(0);
axisY.setMax(30);
//----Assign data fields--------
var fields = chart1.getDataSourceSettings().getFields();
var field1 = new cfx.FieldMap();
field1.setName("Value");
field1.setUsage(cfx.FieldUsage.Value);
fields.add(field1);
var field2 = new cfx.FieldMap();
field2.setName("Date");
field2.setUsage(cfx.FieldUsage.XValue);
fields.add(field2);
chart1.setGallery(cfx.Gallery.Bar);
//----Set Sample Data------------
alert (values);
var items = values;
//alert (items);
chart1.setDataSource(items);
chart1.getView3D().setEnabled(true);
var chartDiv = document.getElementById('ChartDiv1');
chart1.create(chartDiv);
}
</script>
答案 0 :(得分:1)
您的实施存在问题。看看这个样本。
<script type="text/javascript" language="javascript">
// Step 1
// On window load get data using ajax
window.onload = function () {
getAjaxData();
}
// Step 2
// After getting data, call the chart function and pass data
function getAjaxData() {
var values;
$.ajax({
cache : false,
type : "GET",
url : 'chartvalues',
format:'json',
success: function(values) {
onLoadDoc(values);
}
});
}
// Step 3
// Process your chart using the passed data
function onLoadDoc(values) {
var chart1;
chart1 = new cfx.Chart();chart1.getAnimations().getLoad().setEnabled(true);
var axisY = chart1.getAxisY();
axisY.setMin(0);
axisY.setMax(30);
//----Assign data fields--------
var fields = chart1.getDataSourceSettings().getFields();
var field1 = new cfx.FieldMap();
field1.setName("Value");
field1.setUsage(cfx.FieldUsage.Value);
fields.add(field1);
var field2 = new cfx.FieldMap();
field2.setName("Date");
field2.setUsage(cfx.FieldUsage.XValue);
fields.add(field2);
chart1.setGallery(cfx.Gallery.Bar);
//----Set Sample Data------------
var items = values;
chart1.setDataSource(items);
chart1.getView3D().setEnabled(true);
var chartDiv = document.getElementById('ChartDiv1');
chart1.create(chartDiv);
}
</script>
答案 1 :(得分:0)
为您提供补丁参考。在页面的任何位置创建隐藏字段:
<input type="hidden" id="hidden_values">
现在,在ajax的成功选项中:
success: function(response)
{
//alert(response);
values = response;
//alert (values);
$("#hidden_values").val(values); //to save the values in a hidden field in the page to retrieve later
}
在onLoadDoc函数中:
alert ( $("#hidden_values").val(); );
var items = $("#hidden_values").val();