How to send an array to a variable with Json

2
<!DOCTYPE html >

<html>

<head>
  <link rel="stylesheet" href="demos.css" type="text/css" media="screen" />

  <script src="/sistema/jquery/plugins/RGraph/libraries/RGraph.common.core.js"></script>
  <script src="/sistema/jquery/plugins/RGraph/libraries/RGraph.common.dynamic.js"></script>
  <script src="/sistema/jquery/plugins/RGraph/libraries/RGraph.common.tooltips.js"></script>
  <script src="/sistema/jquery/plugins/RGraph/libraries/RGraph.line.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script><scripttype="text/javascript" src="http://www.google.com/jsapi"></script><scripttype="text/javascript">
    google.load("jquery", "1.3.2", {
      uncompressed: true
    });
  </script>
  <script type="text/javascript" src="json.class.js"></script>

  <!--[if lt IE 9]><script src="../excanvas/excanvas.js"></script><![endif]-->

  <p style="margin-left:50em;">
    <title>Cotação USD x BRL</title>
  </p>

  <meta name="robots" content="noindex,nofollow" />
  <meta name="Descrição" content="Cotação do Dolar de Acordo com o Real" />

</head>

<body>

  <h2></h2>

  <canvas id="cvs" width="900" height="300">[No canvas support]</canvas>

  <script>
    $(document).ready(function() {

      var data = [JSON.parse(document.getElementById('valor').value);];
      var tooltips = [];


      //[2.59,2.60,2.40,2.67,1.78];

      // Create the tooltips
      for (var i = 0; i < data.length; i += 1) {
        tooltips[i] = '1 USD = ' + String(data[i] + ' Reais')
      }

      var line = new RGraph.Line({
        id: 'cvs',
        data: data,
        options: {
          tooltips: {
            self: tooltips,
            highlight: false
          },
          colors: ['#058DC7'],
          filled: true,
          fillstyle: 'rgba(229,243,249,0.5)',
          tickmarks: 'filledcircle',
          background: {
            grid: {
              vlines: false,
              border: false,
              autofit: {
                numhlines: 10
              }
            }
          },
          shadow: false,
          linewidth: 3,
          gutter: {
            left: 50,
            right: 20
          },
          numxticks: 0,
          ylabels: {
            count: 5
          },
          axis: {
            color: '#aaa'
          },
          text: {
            color: '#aaa'
          },
          labels: ['21/01', '22/01', '23/01', '24/01', '25/01']
        }
      })

      RGraph.ISOLD ? line.draw() : line.trace2();

    })
  </script>

  <div id="valor"></div>
  <div id="label"></div>

</body>

</html>

At the end of the code is sending the result to a div called "value" wanted to send direct to a variable in javascript has?

// Classe para chamar o Json.
function json() {
  var qtd;
  var retorno;

  // Resgatar valores.
  json.prototype.resgatarValores = function() {
    $('#resultado').html('Carregando dados...');

    // Estrutura de resultado.
    $.getJSON('/webpro/webadm/lncidjson', function(data) {
      this.qtd = data.usuarios.length - 1;
      this.valore = '';
      this.label = '';

      for (i = 0; i < this.qtd; i++) {
        if (i == (this.qtd - 1)) {
          this.valore += data.usuarios[i].valor;
          this.label += data.usuarios[i].descr;
        } else {
          this.valore += data.usuarios[i].valor + ',';
          this.label += data.usuarios[i].descr + ',';
        }
      }

      $('#valor').html(this.valore);
      $('#label').html(this.label);
    });

  }

}

// Objeto.
var obj = new json();
obj.resgatarValores();
    
asked by anonymous 13.03.2015 / 14:52

1 answer

1

If you want to pass out of this call AJAX surigo you pass a callback function. So you can run it asynchronously which is the nature of ajax / $. GetJSON .

Something of the style:

obj.resgatarValores(function(data, labels){
   // aqui podes fazer algo com a variável (tipo array) "data" e "lavels" que terá o valor de "valore" e "label" dentro da chamada ajax.
   // Esta callback é corrida quando o ajax/getJSON tiver recebido resposta do servidor
});

and in the other part of the code something like:

json.prototype.resgatarValores = function (callback) { // aqui dás a callback como argumento
    $('#resultado').html('Carregando dados...');

    // Estrutura de resultado.
    $.getJSON('/webpro/webadm/lncidjson', function (data) {
        var valore = data.usuarios.map(function (u) {
            return u.valor;
        });
        var label = data.usuarios.map(function (u) {
            return u.descr;
        });
        // aqui usas a callback, passando o "valor" quando ele tiver chegado do servidor
        callback(valore, label); 

    });
}

Notice that you can have this json.prototype.resgatarValores = function (callback) { out of the constructor function. Or simply this.resgatarValores = function (callback) {

    
13.03.2015 / 14:58