RESOLVIDO - Evento ajax com campo virtual

Boa noite, prezados(as)!!

Estou com um probleminha básico e precisava de uma ajuda pra ver onde estou errando, pois já revirei meu código de ponta-cabeça e não tive solução.
Tenho uma tabela chamada “autoridade” e outra chamada “cargo”. Toda autoridade tem um cargo, portanto o idcargo está referenciado na tabela “autoridade”.
Criei um formulário onde o campo com o nome da autoridade é um select, e criei um campo virtual no fomulário tipo select com o cargo. Quero fazer um evento ajax, na medida em que o cargo for apontado, somente as autoridades que detêm aquele cargo devem ser listadas. Tipo aquele lance de UF (cidade) que comumente aparece nos exemplos. Mas não tá dando certo, já fiz o where no select e nada.
Logo abaixo tem as imagens do que estou tentando fazer, acho que fica mais objetivo o pepino que to tentando descascar.
Muitíssimo obrigado desde já.

Utilize processamento Ajax para atualizar o segundo select, mas inverta os campos, é em idcargo que vc vai fazer processamento ajax em idautoridade.
.

2 Curtidas

Bom dia, Sr. Haroldo!
Eu tentei inúmeras combinações. Deixei os eventos ajax ativados nos dois campos, coloquei cláusula WHERE em um, em outro, em ambos, alternei entre eventos, mudei cláusula de um para outro, nada!
Eu acho que meu problema está realmente no select, porque seguindo sua lógica, idautoridade teria que fazer parte do campo “cargo”; não faz. Na realidade, idcargo faz parte do campo autoridade, não tem como puxar idautoridade no campo cargo se esse campo não existe. Sei da sua maestria e cátedra nessa ferramenta pois já acompanho suas postagens há tempos, meus conhecimentos são poucos, mas a vontade é grande (rsrsrsrsr). Não querendo ser “folgado”, longe de mim, mas poderia dar uma afunilada no seu raciocínio para que eu possa alcancá-lo?
Muito obrigado desde já.

Só porque é um campo virtual o cargo não é motivo para não funcionar (desde que não esteja marcado como select2).

Talvez forçar a recarga do campo autoridade em um evento onchange do campo cargo possa funcionar.

Contribuição @fagner_queiroz_santa:
No evento ajax onchange do campo cargo:

$js = 'do_ajax_'.$this->Ini->nm_cod_apl.'_refresh_idautoridade()';
sc_ajax_javascript($js);

Precisa testar bem no PHP 8.1.

3 Curtidas

Parece que o Select do campo idautoridade está com erro. O campo {idcargo} não parece na imagem, então o correto seria WHERE idcargo = {cargo}.

Além disso, como o Haroldo citou, o ajax é no campo {cargo}.

1 Curtida

Brilhante!! Resolvido, muito obrigado!

Resolvido como?..

Senhor Haroldo, exatamente do jeito que o senhor havia postado inicialmente, mas não tinha me atentado pra informação abaixo repassada pelo Luiz Paulo, era como imaginei, mas não enxergava, um erro de select. Então, seguindo suas dicas e corrigindo o erro apontado, de maneira muito eficaz o problema foi sanado. Agradeço os valiosos préstimos na certeza de que voltarei a me socorrer desse fórum e de todos que dele fazem parte.
Muito obrigado mais uma vez!

1 Curtida