Ajax só retorna o formulário da página php da 1ª requisição, as seguintes independente de mudar o valor, sempre será os dados da 1ª requisição

Ajax

03/12/2018

Bom dia pessoal, tenho uma duvida de ajax, estou passando uma variável id (que pego pelo valor de um botão) e passando pelo ajax para que ele me retorne um formulário com os dados de um produto em uma modal, quando abro a primeira modal funciona normal, más quando abro a segunda, ele me retorna os dados da primeira...
/**
         * Captura uma variavel GET do link
         * e retorna.  EX:
         * getCat()[''''''''nome da viravel desejada'''''''']
         */
        function getCat() {
            var vars = [], hash;
            var hashes = window.location.href.slice(window.location.href.indexOf(''''''''?'''''''') + 1).split(''''''''&'''''''');
            for (var i = 0; i < hashes.length; i++)
            {
                hash = hashes[i].split(''''''''='''''''');
                vars.push(hash[0]);
                vars[hash[0]] = hash[1];
            }
            return vars;
        }

        /**
         * Faz a leitura de uma nova tabela
         * de produto.
         * enviado a variavel GET cat obtida na função getCat()
         */
        function att_tabela() {
            $.ajax({
                method: "POST",
                url: "../../config/php/update/produto/udp_tb.php",
                data: {c: getCat()[''''''''cat'''''''']},
                success: function (result) {
                    $(''''''''#tb_produto'''''''').html(result);
                }
            });
        }

        /**
         * Faz a leitura de novas Modais ao atualizar a tabela
         * enviado a variavel GET cat obtida na função getCat()
         * @param  id
         * @returns 
         */
        function Janela(id) {
            $.ajax({
                method: "POST",
                data: {id: id, c: getCat()[''''''''cat'''''''']},
                url: "paginas/cardapio/produto/produto/form_update_modal.php",
                success: function (result) {
                    $(''''''''.modal-body'''''''').html("");
                    $(''''''''.modal-body'''''''').html(result);
                }
            });
        }

       /*
         * Ao clicar em botão pega o valor,
         * e o repassa na função Janela(id) 
         */
        $(''''''''.btn_modal_on'''''''').click(function () {
            var id = 0;
            id = $(''''''''.btn_modal_on'''''''').val();
            Janela(id);
        });

Epitacio

Epitacio

Curtidas 0

Respostas

Alex William

Alex William

03/12/2018

oi, posso indagar uma questão?

pq está função:

function getCat() {
            var vars = [], hash;
            var hashes = window.location.href.slice(window.location.href.indexOf(''''''''?'''''''') + 1).split(''''''''&'''''''');
            for (var i = 0; i < hashes.length; i++)
            {
                hash = hashes[i].split(''''''''='''''''');
                vars.push(hash[0]);
                vars[hash[0]] = hash[1];
            }
            return vars;
        }


Não seria mais facil usar $_GET['<nome_variavel>'] do PHP? É mais eficiente e vc utiliza o nome dos parametros ao inves de criar uma função.

Funções ajax rodam na mesma pagina sem redirecionar, então se sua pagina for "pagina.php?id=1&t=teste" sempre que vc chamar a função getCat() ou o $_GET[] ele sempre vai retornar os mesmos valores.

Poderia postar o codigo das paginas php que voce requisita no ajax por favor, para verificar que função tem nessas paginas?
GOSTEI 0
Epitacio

Epitacio

03/12/2018

oi, posso indagar uma questão?

pq está função:

function getCat() {
            var vars = [], hash;
            var hashes = window.location.href.slice(window.location.href.indexOf(''''''''?'''''''') + 1).split(''''''''&'''''''');
            for (var i = 0; i < hashes.length; i++)
            {
                hash = hashes[i].split(''''''''='''''''');
                vars.push(hash[0]);
                vars[hash[0]] = hash[1];
            }
            return vars;
        }


Não seria mais facil usar $_GET['<nome_variavel>'] do PHP? É mais eficiente e vc utiliza o nome dos parametros ao inves de criar uma função.

Funções ajax rodam na mesma pagina sem redirecionar, então se sua pagina for "pagina.php?id=1&t=teste" sempre que vc chamar a função getCat() ou o $_GET[] ele sempre vai retornar os mesmos valores.

Poderia postar o codigo das paginas php que voce requisita no ajax por favor, para verificar que função tem nessas paginas?


Preciso carregar uma tabela dinamicamente, sem realizar refresh ou header na página, e ultilizo o ajax, com uma url em uma página php que faz a leitura de uma nova tabela, a tabela ele identifica por esse get, que capturo e envio via ajax, sem recarregamento e dinamicamente
GOSTEI 0
Epitacio

Epitacio

03/12/2018

oi, posso indagar uma questão?

pq está função:

function getCat() {
            var vars = [], hash;
            var hashes = window.location.href.slice(window.location.href.indexOf(''''''''?'''''''') + 1).split(''''''''&'''''''');
            for (var i = 0; i < hashes.length; i++)
            {
                hash = hashes[i].split(''''''''='''''''');
                vars.push(hash[0]);
                vars[hash[0]] = hash[1];
            }
            return vars;
        }


Não seria mais facil usar $_GET['<nome_variavel>'] do PHP? É mais eficiente e vc utiliza o nome dos parametros ao inves de criar uma função.

Funções ajax rodam na mesma pagina sem redirecionar, então se sua pagina for "pagina.php?id=1&t=teste" sempre que vc chamar a função getCat() ou o $_GET[] ele sempre vai retornar os mesmos valores.

Poderia postar o codigo das paginas php que voce requisita no ajax por favor, para verificar que função tem nessas paginas?


Preciso carregar uma tabela dinamicamente, sem realizar refresh ou header na página, e ultilizo o ajax, com uma url em uma página php que faz a leitura de uma nova tabela, a tabela ele identifica por esse get, que capturo e envio via ajax, sem recarregamento e dinamicamente



Mas já consegui resovler o problema, quando ultilizei o $('.btn_modal_on).click(function(){....});
quando fui capturar o valor, inves de ultilizar o this, coloquei o nome da classe, e como a vários botões desta classe, ele captura o 1º valor,
resumo, só trocar a captura do valor de .btn_modal_on para this e voltou a funcionar
GOSTEI 0
POSTAR