Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Передача в переменную результата работы функции (https://javascript.ru/forum/misc/63200-peredacha-v-peremennuyu-rezultata-raboty-funkcii.html)

vmetnev 23.05.2016 13:37

Передача в переменную результата работы функции
 
Коллеги, подскажите, есть простой скрипт. Нужно в переменную mydata передать результаты выполнения функции zara(). Сама zara() выдает строку в формате json. В результате выполнения скрипта выдается, что mydata - undifiend. Не могу понять в чем ошибка

<html>
<header>
<script src="http://code.jquery.com/jquery-2.1.1.min.js">
</script>

</header>
<body>
</body>

<script>

function zara() { $( document ).ready(function(){
$.post('connector.php', function(data){
var output=data;
return output;
});
});
};
var mydata=zara();
document.write(mydata);
</script>

</html>

vmetnev 23.05.2016 13:40

по идеи zara() выдает:

[["Date","Value"],["2015-05-01",100],["2015-05-02",102],["2015-05-03",108],["2015-05-04",111],["2015-05-05",110],["2015-05-06",105],["2015-05-07",107]]

destus 23.05.2016 13:53

vmetnev,
https://habrahabr.ru/post/113073/

Alex_63 23.05.2016 13:55

vmetnev,
function zara() { 
  var output = $.ajax({url:'connector.php',async:false,cache:false}).responseText; 
  return output; 
};
var mydata = zara();
document.write(mydata);

vmetnev 23.05.2016 14:05

Alex_63, спасибо большое, теперь возникает еще одна проблема
 
ajax, как я понимаю, теперь возвращает string. А мне ее надо вставить в функцию для графиков. Текст не принимает...

<html>
<head>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>

<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']});

function zara() {
var output = $.ajax({url:'connector.php',async:false,cache:fals e}).responseText;
return output;
};

google.charts.setOnLoadCallback(drawChart);

function drawChart() {

var interim= zara();
var data = google.visualization.arrayToDataTable(interim);

var options = {
title: 'Performance since inception',
curveType: 'function',
legend: { position: 'bottom' }
};

var chart = new google.visualization.LineChart(document.getElement ById('curve_chart'));

chart.draw(data, options);
}


</script>
</head>

<body>
<div id="curve_chart" style="width: 900px; height: 500px"></div>
</body>
</html>

destus 23.05.2016 14:08

Цитата:

async:false


vmetnev 23.05.2016 14:14

Да не в этом было дело...
 
просто строку надо было переделывать через JSON.parse(var)

vmetnev 23.05.2016 14:14

Товарищи, СПАСИБО БОЛЬШОЕ!!!!!!!!!!!!! ЗАРАБОТАЛО!!!!!!!!!!!!!!!! УРА!!!!!!!!!!!!!!!!!!


Часовой пояс GMT +3, время: 08:55.