DI
Esconder e aparecer campo na tela do cliente.
Prezados Paz e Bem,
Estou com um problema em uma tela em que é um formulário que é externo ao layout do framework, ou seja, é uma tela de cadastro em que o campo norma ao selecionar a opção "outra" deveria aparecer o campo descritivo de outra para o cliente digitar/informar.
Porém estando logado dentro da plataforma adianti funciona perfeitamente. Já nesse form que é externo a função não funciona.
Ao realizar o debug funciona normalmente. Passa pelo função que deve mostrar o campo outra_norma. Porém não mostra na tela. É como se a função não estivesse ativa para essa situação.
Abaixo coloquei as informações da tela e se alguém já passou por isso e tem uma solução agradeço antecipadamente até monetizando se for o caso.
No application.ini temos:
[permission]
; Public classes, anyone (logged or not) has access
public_classes[] = PublicForm
public_classes[] = PublicView
public_classes[] = SystemRequestPasswordResetForm
public_classes[] = SystemPasswordResetForm
public_classes[] = SystemModulesCheckView
public_classes[] = SystemRegistrationForm
public_classes[] = cadastroPropostaAvalForn
public_classes[] = Cadastro
public_classes[] = Solicita
public_classes[] = SolicitaComp <strong>(essa é a classe que estou trabalhando sendo ela pública porque é um acesso externo)</strong>
public_classes[] = Finaliza
public_classes[] = FinalizaComp
public_classes[] = Erro
SolicitaComp.class.php
// no campo onc_normas_id eu seleciono outras para abrir o campo outras_normas
$onc_normas_id = new TDBCombo('onc_normas_id', 'database', 'OncNormas', 'id', 'descricao');
//função onNormaChange que mostra o campo
$onc_normas_id ->setChangeAction( new TAction( array($this, 'onNormaChange' )) );
//ainda dentro do SolicitaComp.class.php eu usei essas formas para esconder.. funciona normalmente para esconder o campo
//TScript::create('document.getElementById("outra_norma").disabled=true');
//TEntry::disableField('form_Solicita', 'outra_norma');
// Essa foi a última tentativa de esconder.
TQuickForm::hideField('form_Solicita', 'outra_norma');
//essa é a função que mostra o campo ao selecionar outra
public static function onNormaChange($param){
try
{
//essas foram as tentativas anteriores
//TScript::create('document.getElementById("outra_norma").disabled=false');
//TScript::create("$('#outra_norma').prop('disabled', false);");
//TEntry::enableField('form_Solicita', 'outra_norma');
//abaixo a tentativa de mostrar o campo outra_norma. Estando logado funciona perfeitamente. Deslogando e abrindo externamente ao framework a função não mostra o campo outra_norma.
TQuickForm::showField('form_Solicita', 'outra_norma');
}
catch (Exception $e)
{
new TMessage('error', $e->getMessage());
}
}
Por fim esse é o link que utilizo para abrir externamente. Talvez seja esse o problema.
localhost:81/adianti751b/template/index.php?class=SolicitaComp&m
Estou utilizando o studio 7.0 e framework versão 7.51.
De antemão sinceros agradecimentos e espero que possam me ajudar.
Preciso de desenvolvedor entre em contato pelo whatsapp 62 996997585.
Abraços.
Daniel Iwamoto