Ajax Json и график
Страницы: 1
Ajax Json и график, Помощь
Вопрос такой, есть 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; 
 
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
Скачайте самые новые фильмы торент
передай через data при клике. И получи ajax ответ
Код
$('#click').click(function(){
var some = $(this).data("id");
$.ajax({
  type: "POST",
  url: "some.php",
  data: "name="+some,
  success: function(html){
     $("#results").append(html);
  }
  });
});
 
Через data не прошло, сделал немного по другомувот код скрипта:

Код
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);
}
});
}



Вот код обработчика:

Код
if($_POST['func'] == "go_stata") {
$id = intval($_POST["id"]);
$sql = mysql_query("SELECT * FROM `nano_rek_dinamika` WHERE `id_user`='$id_login' AND `id`='$id'") or die(mysql_error());
while ($row = mysql_fetch_array($sql)){
$pn = $row["pn"];
$vt = $row["vt"];
$sr = $row["sr"];
$ch = $row["ch"];
$pt = $row["pt"];
$sb = $row["sb"];
$vs = $row["vs"];

$shablon = '
<div id="chartdiv_'.$id.'" style="min-width: 200px; height: 250px; max-width: 100%; margin: 0 auto"></div>
<script>
var chart;
var chartData_'.$id.' = [
{
"country": "Пн",
"visits": '.$pn.'},
{
"country": "Вт",
"visits": '.$vt.'},
{
"country": "Ср",
"visits": '.$sr.'},
{
"country": "Чт",
"visits": '.$ch.'},
{
"country": "Пт",
"visits": '.$pt.'},
{
"country": "Сб",
"visits": '.$sb.'},
{
"country": "Вс",
"visits": '.$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";

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);

// 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.'");
});
</script>
';
echo json_encode($shablon);
}
}
 


После обработки получаю вот что:

Код
<div id="chartdiv_1" style="min-width: 200px; height: 250px; max-width: 100%; margin: 0 auto"></div>
var chart;
var chartData_1 = [
{
"country": "Пн",
"visits": 0},
{
"country": "Вт",
"visits": 0},
{
"country": "Ср",
"visits": 2},
{
"country": "Чт",
"visits": 0},
{
"country": "Пт",
"visits": 0},
{
"country": "Сб",
"visits": 0},
{
"country": "Вс",
"visits": 0},

];


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

// AXES
// category
var 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);

// 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_1");
});
 
Но график так и не отображается, не могу понять в чём проблема!( Пробовал и js скрипты дублировать в сам шаблон, не помогло.
Страницы: 1
Похожие темы:
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)
Новые темыОбъявленияСвободное общение
13:26 Майский Апдейт Яндекс выдача - 3 числа 2023 года 
13:24 Новая акция и пятничный АПдейт Яндекс выдача 19.05.2023 
13:23 АП Яндекс ИКС 06.03.2023 
13:22 28 мая АП Яндекс выдача / До официального лета остались считанные дни 
12:11 Ссылки с ответы майл ру 
20:26 Webvork - международная товарная СРА сеть с сертифицированными офферами на Европу. 
12:50 DreamCash.tl - заработок на онлайн-видео. До 95% отчислений, отличный конверт! 
16:47 GoogleWalker - устранение конкурентов в Google Ads | Автоматизированная система склика | АНТИБАН 
16:15 LucPey - Первоклассный обменник криптовалют 
15:17 Metrochange – безопасный обменник ваших криптовалют по выгодным курсам 
13:35 ZennoPoster - софт №1 для автоматизации любых SEO задач! 
11:49 Хотите заказать статью для сайта на английском языке? 
13:25 My24pay - Универсальный сервис обмена электронных валют 
12:34 Ural-obmen.ru — выгодный сервис обмена 
16:07 Темнокожая американка: Уволили за 47 опозданий - отсудила "за расизм" $11 млн у работодателя 
06:13 Конец пандемии - конец притворству ВОЗ: Вакцины от ковида признаны опасными 
21:11 С юмором по жизни! 
20:24 Я придумал новую игру 
19:58 Партнерка Cpa.House 
00:36 Accvk.ru - магазин самых надёжных аккаунтов вконтакте и других социальных сетей [без владельцев] 
19:54 Изменение цитаты в тексте