Общие вопросы

Ajax Json и график (Гуру)

51 4
user avatar
Пользователь
На сайте 14 лет
Сообщений : 257
Репутация : 0
9 лет назад
Гуру, просыпаемся, давайте валите меня грязью.=)
Вопрос такой, есть ajax запрос который отправляет при клике на ссылку переменную id в файл обработчик, файл обработчик получает это всё и формирует нужный мне массив (с этим проблем нет массив получается и отправляется обратно). Вот сам код
function go_stata(id) {
$.post('/stata', {'func' : 'go_stata', 'id' : id}, function(data, requestStatus) {
if ( data['status'] != '0' ) {
$.each(data['stata'], function(index, msg_array) {
var chart;
var chartData_id = [
{
"country": "Пн",
"visits": msg_array['pn']
},
{
"country": "Вт",
"visits": msg_array['vt']
},
{
"country": "Ср",
"visits": msg_array['sr']
},
{
"country": "Чт",
"visits": msg_array['ch']
},
{
"country": "Пт",
"visits": msg_array['pt']
},
{
"country": "Сб",
"visits": msg_array['sb']
},
{
"country": "Вс",
"visits": msg_array['vs']
},

];


AmCharts.ready(function () {
// SERIAL CHART
chart = new AmCharts.AmSerialChart();
chart.dataProvider = chartData_id;
chart.categoryField = "country";
chart.startDuration = 1;

// AXES
// category
var categoryAxis = chart.categoryAxis;
categoryAxis.labelRotation = 90;
categoryAxis.gridPosition = "start";

// value
// in case you don't want to change default settings of value axis,
// you don't need to create it, as one value axis is created automatically.

// GRAPH
var graph = new AmCharts.AmGraph();
graph.valueField = "visits";
graph.balloonText = "[[category]]: [[value]]&#
34;;
graph.type = "column";
graph.lineAlpha = 0;
graph.fillAlphas = 0.8;
chart.addGraph(graph);

// CURSOR
var chartCursor = new AmCharts.ChartCursor();
chartCursor.cursorAlpha = 0;
chartCursor.zoomable = false;
chartCursor.categoryBalloonEnabled = false;
chart.addChartCursor(chartCursor);

chart.creditsPosition = "top-right";

chart.write('chartdiv_'+id+''&
#41;;
});
$('#stata').prepend('
');
});
}
}, "json");
}
Затем я получаю мой массив и разбиваю его. потом вставляю данные в график и по сути должен при клике открыться , он и открывается, но график в нём не отображается.=( Возможно это не правильное решение моей задачи.
Поясню задачу, нужно для каждого элемента вывести свой график, можно конечно сделать без подгрузки из стороннего файла, но если элементов много то страница значительно нагрузиться от большого кол-ва ajax кода.
user avatar
Пользователь
На сайте 15 лет
Сообщений : 663
Репутация : 0
9 лет назад
nanotek,
Дай ссылку чтоль где шаманишь это всё.
user avatar
Пользователь
На сайте 14 лет
Сообщений : 257
Репутация : 0
9 лет назад
Цитата: steamДай ссылку чтоль где шаманишь это всё.
Там надо региться, да и до окончания палить не охото)

Сделал по другому, ajax:
function go_stata(id) {
$.ajax({
type: "POST",
url: "/stata",
dataType: "json",
data: {'func' : 'go_stata', 'id' : id},
beforeSend: function(){ progress = true;},
success: function(json){
$("#dd").html(json);
}
});
}

Обработчик(кусок):
$shablon = '

';

echo json_encode($shablon);

Получаю в файле после всего:



Но график так и не показывается.( что опять не так? Ведь все данные получены и обработаны.
user avatar
Пользователь
На сайте 14 лет
Сообщений : 257
Репутация : 0
9 лет назад
Если кому интересно, решение было простое, в обработчике нужно было убрать AmCharts.ready(function () {
Автор темы
author avatar
nanotek
Пользователь
На сайте 14 лет
Сообщений 257
Тем 23
Репутация 0
Теги темы
Автор не добавил тегов для этой темы
Ответить
Написал(а):