Ajax problem when trying to use data in later functions

Asked

Viewed 24 times

2

I’m trying to get the data from the functions BuscaCabeca and BuscaBraco, it is returning the data all right, but when I try to use the data created cabeca and braco is like Undefined, what I’m doing wrong.

$(document).ready(function () {
        var braco  = [];
        var cabeca = [];

        BuscaCabeca();
        BuscaBraco();

        function BuscaCabeca() {

            cabeca = [];

            $.ajax({
                type: "GET",
                url: '@Url.Action("GetCabeca", "Home")',
                success: function (dataCabeca) {
                    $.each(dataCabeca, function (i, v) {
                        cabeca.push({
                            Rotacao:    v.Rotacao,
                            Inclinacao: v.Inclinacao
                        });
                    })

                },
                error: function (errorCabeca) {
                    alert('Não foi possivel carregar dados da cabeça');
                }
            });
        };

        function BuscaBraco() {
            braco  = [];

            $.ajax({
                type: "GET",
                url: '@Url.Action("GetBraco", "Home")',
                success: function (dataBraco) {
                    $.each(dataBraco, function (i, v) {
                        braco.push({
                            CotoveloEsquerdo: v.CotoveloEsquerdo,
                            PulsoEsquerdo:    v.PulsoEsquerdo,
                            CotoveloDireito:  v.CotoveloDireito,
                            PulsoDireito:     v.PulsoDireito
                        });
                    })
                },
                error: function (errorBraco) {
                    alert('Não foi possivel carregar dados do braço');
                }
            });
        };

        $('.geraMovimentoCabeca').on('click', function (event) {
            var button = $(event.target);

            var cabeca = button.data('cabeca');

            if (cabeca == "inclinacao") {
                var inclinacao = button.data('inclinacao');
            } else {
                var rotacao = button.data('rotacao');
            }

            if (typeof inclinacao !== 'undefined') {
                inclinacao = cabeca.Inclinacao;
            } else {
                rotacao = cabeca.Rotacao;
            }

            EnviaDadosCabeca(rotacao, inclinacao);

        });

        function EnviaDadosCabeca(rotacao, inclinacao) {
            $.ajax({
                type: "POST",
                url: '@Url.Action("UpdateCabeca", "Home")',
                data: {
                    'Rotacao'    : rotacao,
                    'Inclinacao' : inclinacao
                },
                success: function (data) {
                    alert("Enviou");
                },
                error: function (error) {
                    alert('Não foi possivel enviar dados da cabeça');
                }
            });
        };
    });

1 answer

1


Declare variables as global, before the function $(document).ready.

var braco  = [];
var cabeca = [];

$(document).ready(function () {
    ...      
});

Browser other questions tagged

You are not signed in. Login or sign up in order to post.