Вопрос такой, есть ajax запрос который отправляет при клике на ссылку переменную id в файл обработчик, файл обработчик получает это всё и формирует нужный мне массив (с этим проблем нет массив получается и отправляется обратно). Вот сам код
Затем я получаю мой массив и разбиваю его. потом вставляю данные в график и по сути должен при клике открыться
, он и открывается, но график в нём не отображается.=( Возможно это не правильное решение моей задачи.
Поясню задачу, нужно для каждого элемента вывести свой график, можно конечно сделать без подгрузки из стороннего файла, но если элементов много то страница значительно нагрузиться от большого кол-ва ajax кода.
Так же можете посоветовать как можно реализовать всплывающее окно, но что бы оно брало информацию из другого файла. Принцип:
Человек нажал на ссылку -> ссылка передала id в другой файл -> файл обрабатывает полученный id и возвращает уже готовый html код обратно во всплывающее окно.
Код |
---|
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; categoryvar categoryAxis = chart.categoryAxis; categoryAxis.labelRotation = 90; categoryAxis.gridPosition = "start"; var graph = new AmCharts.AmGraph(); graph.valueField = "visits"; graph.balloonText = "[[category]]: <b>[[value]]</b>; graph.type = "column"; graph.lineAlpha = 0; graph.fillAlphas = 0.8; chart.addGraph(graph); 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+''}); $('#stata').prepend('<div id="chartdiv_' + id + '" style="min-width: 200px; height: 250px; max-width: 100%; margin: 0 auto"></div>'); }); } }, "json");} |
Затем я получаю мой массив и разбиваю его. потом вставляю данные в график и по сути должен при клике открыться
Код |
---|
<div id="chartdiv_' + id + '" style="min-width: 200px; height: 250px; max-width: 100%; margin: 0 auto"></div> |
Поясню задачу, нужно для каждого элемента вывести свой график, можно конечно сделать без подгрузки из стороннего файла, но если элементов много то страница значительно нагрузиться от большого кол-ва ajax кода.
Так же можете посоветовать как можно реализовать всплывающее окно, но что бы оно брало информацию из другого файла. Принцип:
Человек нажал на ссылку -> ссылка передала id в другой файл -> файл обрабатывает полученный id и возвращает уже готовый html код обратно во всплывающее окно.
Изменено:
Олег Былинкин - 15 Декабря 2016 14:02