Em consulta, evento ajax botão onclick dando erro de referência

Bom dia.

Tenho uma consulta (grid_limpeza) onde criei um novo campo do tipo texto (mas que na verdade é usado como um botão) chamado btn_verif.

Sendo assim, no evento onRecord eu crio esse botão:

{btn_verif} = “<button type=‘button’ onclick=‘do_ajax_grid_limpeza_event_btn_verif_onclick()’;>Verificar”;

Porém, quando crio o evento ajax onclick desse botão, é como se a aplicação não tivesse enxergando esse evento, ou seja, é como se a chamada do onclick tivesse errada, dando erro de referência:

ReferenceError: do_ajax_grid_limpeza_event_btn_verif_onclick is not defined

Tenho uma aplicação do tipo controle que faço praticamente a mesma coisa e dá certo, o que pode tá acontecendo com essa consulta que tá dando errado??

Obrigado.

Aplicação de controle difere de uma aplicação de consulta.

adicione um evento onclick a um campo qualquer, coloque um echo nele. Execute e inspecione o elemento e verá como o SC faz a chamada a um evento ajax onclick.

Haroldo, fiz o que você falou, mas na inspeção não tô conseguindo encontrar a chamada ao evento ajax onclick.

[i]


G
Gerado [/i]

Sim.

Crie o evento ajax para o campo que criaste que ele acionará o evento, no caso {btn_verif} <- jogue um img nele ou crie o campo como imagem html.

Veja essa sequencia de 4 vídeos iniciando por esse: https://www.youtube.com/watch?v=ow-UV2fopyQ&t=406s (assista em velocidade 2).

O exemplo:
https://v9.infinitusweb.com.br/forum_sc/grid_onclick

Haroldo, fiz exatamente do jeito que você explica nos videos… Mas o problema é que, não sei porque, mas no meu caso o não fica “clicável”… Ele simplesmente fica como um texto normal… Deveria tá “habilitando” o click, mas não tá… Tá estranho isso!
Meu ScriptCase é o 9.1.004

No código:
{btn_verif} = “Verificar”;

Inspecionando:
Ok

Sim.

Crie o evento ajax para o campo que criaste que ele acionará o evento, no caso {btn_verif} <- jogue um img nele ou crie o campo como imagem html.

Veja essa sequencia de 4 vídeos iniciando por esse: https://www.youtube.com/watch?v=ow-UV2fopyQ&t=406s (assista em velocidade 2).

O exemplo:
https://v9.infinitusweb.com.br/forum_sc/grid_onclick

Tah spam não tem atributo tudo.
Isso está no vídeo?

Logo no 1° video - CONSULTA PARTE I Falhas na Consulta Demonstração - você cria o campo mycheck direto no sql e depois, aos 10 minutos ±, cria o evento ajax mycheck_onclick.

Já aí, quando você roda a aplicação, o “meu clique” (conteúdo do campo mycheck) de cada registro passa a funcionar como um link para a função ajax mycheck_onclick. Isso já bastaria pra mim… Era só isso que eu precisava. Mas não funciona no meu de jeito nenhum fazendo assim!!

Continuando os videos, no 2° video - CONSULTA PARTE II Contornando as falhas da consulta - aos 37 minutos ±, você cria a tag span do jeito que postei no comentário anterior (eu só tinha esquecido de tirar o “type=‘button’” da minha tag (falha minha), mas tirei e continuou a mesma coisa, um campo texto normal, sem ser um link clicável).

Lembrando que criei o evento ajax btn_verif_onclick!

O exemplo no vídeo funciona.
Como se segue:
https://v9.infinitusweb.com.br/forum_sc/grid_onclick/

Ao adicionar o atributo OnClick a tag já está tornando clicável. Precisa ver se a função chamada no OnClick contém erros. Se inspecionar o código vê erros javascript?

Exatamente!! No vídeo funciona… Nesse seu exemplo funciona… Só no meu que não está funcionado…

Devo estar fazendo algo errado mesmo!! Só não estou conseguindo descobrir o que… Mas vou descobrir!!

Minha dúvida inicial era se na consulta podia ou não utilizar um onclick desse jeito, mas agora já sei que pode!!

Muito obrigado, Haroldo!!! Valeu mesmo!! Abração

Em tempo… Na Inspeção do código não mostra erro nenhum javascript!!

O exemplo no vídeo funciona. Como sec segue: https://v9.infinitusweb.com.br/forum_sc/grid_onclick/

Ao adicionar o atributo OnClic a tag já está tornando clicável. Precisa ver se a função chamada no OnClick contém erros. Se inspecionar o código vê erros javascript?

Precisaria entender como vc está fazendo.
O que esta fazendo de diferente.

Descobri o que era, Haroldo…

Tem que tá ATIVA na barra de ferramentas a opção ‘Navegação por página’…

Eu tinha desativado toda essa parte de Navegação, por isso não tava funcionando…

Só que agora tem um outro problema muito estranho…

No ambiente de desenvolvimento, a aplicação tá funcionando perfeitamente, mas no de produção quando clico na imagem do checkbox, na 1a vez ele não altera a imagem. A partir da 2a vez ele altera a imagem (checado pra não checado e vice-versa)… E o funcionamento dele fica invertido (quando tá checado funciona como se não tivesse checado e quando não tá checado funciona como se tivesse checado).

Não faço a menor idéia do porquê disse.

No ambiente de desenvolvimento, a aplicação tá funcionando perfeitamente, mas no de produção quando clico na imagem do checkbox, na 1a vez ele não altera a imagem. A partir da 2a vez ele altera a imagem (checado pra não checado e vice-versa).. E o funcionamento dele fica invertido (quando tá checado funciona como se não tivesse checado e quando não tá checado funciona como se tivesse checado).

Descobri o que é!!

No ambiente de produção o SRC da tag img fica CRIPTOGRAFADO (diferentemente do ambiente de desenvolvimento), aí quando faço a comparação da imagem na function troca_img ele não detecta qual é a imagem que tá lá.

código:
{cm_acc} = “<img id=chk_acc_$_seq onclick='ajax_session(”$_ajax",$seq);troca_img("chk_acc$_seq","$_img_cy","$_img_cn");return false;’ src=’$_img_cy’>";

inspecionando no ambiente de produção:
<img id=“chk_acc_1” onclick=“ajax_session(”…/_lib/libraries/grp/php/iwajax.php",1);troca_img(“chk_acc_1”,"…/_lib/libraries/grp/img/checkbox_unchecked_24.png","…/_lib/libraries/grp/img/checkbox_24.png");return false;" src=“data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABmklEQVR42u2UrW6UURRF1z1/9xuaYHkHBBgsikfAIXBoJAmKBIEBhcMgQCNRKHxbBAkSFIQKVCedaXvPQUyLmyYzCW72A+x19vnjf8vYaaed1t7Bi1ev7385PHyv5lNWMkYyKqlRjEpyJKLKYnEyX8yPH37+9PHDRoCD/f13d+7em6IHPQJVw61hqpgamQNpjePl2d7LZ0/fApsBqjGrSm7euk03ZdY716ZOD2dyw8KYIvjx6w9Iu75xi3IUpsKkhgpog0bSKqlKGEmNgUpRWZvPICsxVWazQIAeRoThprgpZoKaYKrQZBtAYe7MogNJdyPUCHPCBFXBmuBuJLkWsBatYvRwImxVvRs9FL80V8W1YSJQW6zpqEQQZlOQ5wM3RUWxS3NpNGm4KW2bO8hMxBqmRjVwVcwFF0EuzK2Bq3BVhCsAhasx9U6eN0JXrVETpK3MW4PoHa7IsBZwerqYD4u97z+PoApzJdSwC4irMoVz8PUbZ8vl0eYzWJ4+eP7k8ZvW5AbZKKl/lbYqilWC5cnit4o/2n3drfUXkPaEG93kRZAAAAArdEVYdENvcHlyaWdodABDb3B5cmlnaHQgqSAyMDA4LTIwMTEgSU5DT1JTIEdtYkgQjiFPAAAAAElFTkSuQmCC”>

Como contornar esse problema??

O exemplo no vídeo funciona.

Utilize as imagens em bibliotecas externas.

Utilize as imagens em bibliotecas externas.

Estou utilizando!! Fiz igualzinho ao seu exemplo!!

No ambiente de desenvolvimento tá funcionando perfeito!!

Agora no ambiente de produção, o SRC da tag IMG tá inicializando criptografado (base64_encode), conforme abaixo.

Aí na função troca_img ele não encontra qual das imagens é a atual pra poder trocar pela outra.

Descobri o que é!!

No ambiente de produção o SRC da tag img fica CRIPTOGRAFADO (diferentemente do ambiente de desenvolvimento), aí quando faço a comparação da imagem na function troca_img ele não detecta qual é a imagem que tá lá.

código:
{cm_acc} = “”;

inspecionando no ambiente de produção:
<img id=“chk_acc_1” onclick=“ajax_session(”…/_lib/libraries/grp/php/iwajax.php",1);troca_img(“chk_acc_1”,"…/_lib/libraries/grp/img/checkbox_unchecked_24.png","…/_lib/libraries/grp/img/checkbox_24.png");return false;" src=“data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABmklEQVR42u2UrW6UURRF1z1/9xuaYHkHBBgsikfAIXBoJAmKBIEBhcMgQCNRKHxbBAkSFIQKVCedaXvPQUyLmyYzCW72A+x19vnjf8vYaaed1t7Bi1ev7385PHyv5lNWMkYyKqlRjEpyJKLKYnEyX8yPH37+9PHDRoCD/f13d+7em6IHPQJVw61hqpgamQNpjePl2d7LZ0/fApsBqjGrSm7euk03ZdY716ZOD2dyw8KYIvjx6w9Iu75xi3IUpsKkhgpog0bSKqlKGEmNgUpRWZvPICsxVWazQIAeRoThprgpZoKaYKrQZBtAYe7MogNJdyPUCHPCBFXBmuBuJLkWsBatYvRwImxVvRs9FL80V8W1YSJQW6zpqEQQZlOQ5wM3RUWxS3NpNGm4KW2bO8hMxBqmRjVwVcwFF0EuzK2Bq3BVhCsAhasx9U6eN0JXrVETpK3MW4PoHa7IsBZwerqYD4u97z+PoApzJdSwC4irMoVz8PUbZ8vl0eYzWJ4+eP7k8ZvW5AbZKKl/lbYqilWC5cnit4o/2n3drfUXkPaEG93kRZAAAAArdEVYdENvcHlyaWdodABDb3B5cmlnaHQgqSAyMDA4LTIwMTEgSU5DT1JTIEdtYkgQjiFPAAAAAElFTkSuQmCC”>