Ir para o conteúdo

 Voltar a Fórum do For...
Tela cheia

Tela Login

8 de Agosto de 2012, 16:05 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 10 vezes

Luis Eugenio

Estou tentando montar uma tela de autenticação de usuário, onde eu digite o login  e a senha e existe um 3º campo("addSelectField") que é carregado de acordo com o usuário qual cidades ele tem acesso, carregado do banco de dados.

Como que é posso passar um parametro, chamo uma função para que ele carreque o addSelectField

Autor: Luis Almeida


44 comentários

  • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
    8 de Agosto de 2012, 22:21

     

    Luis, 

    existem algumas formas de fazer isso, uma seria informar o login e senha e quando for autenticado, exibir o formulário para seleção da cidade no mesmo formulário de login, apenas removendo os campos e adicionando somente o campo select, e a outra seria adicionando uma chamada ajax ao sair do campo login que preenchesse o campo select com as cidades.

    Caso opte pela segunda opção, que eu acho melhor, tem um exemplo de como preencher um campo select utilizando ajax na pasta base/exemplos/exe_SelectField.php veja o evento do botão btnMunAjax que preenche o select com os estados com a função fwFillSelectAjax()

    Abraço.

    • F11255c3ccec97d9ad0bfa683c82d0a6?only path=false&size=50&d=404Luis Almeida(usuário não autenticado)
      16 de Agosto de 2012, 11:35

       

      Luis Eugênio,

      Na realidade eu estou desenvolvendo uma tela de login de usuário para a minha aplicasam com controle de acesso restrido para alguns relatorios.

      Trabalho em uma Orgao de uma Prefeitura e estam me pedindo para desenvolver uma tela de acesso de usuário com controle de acesso a orgão, tipo

      Usuário Teste de acesso a dois orgao

      codigo: 21-  Secretaria de Planejamento, 23 - Secretaria de Finanças do Municipio 

      Estou dentando fazer com que ao digitar login e senha, seja verificada a existencia do login e senha, que ja deu certo, depois seja carregado um campo select  com os orgãos que ele te direito de acesso, que é essa parte que não esta dando certo.

      Tentei fazer de acordo com o exemplo acima sitado "exe_SelectField.php" porem ainda não deu certo

      Chamo a função carregaOrgaoAjax :

      function arregaOrgaoAjax()
      {
          fwFillSelectAjax('cod_orgao_ajax','tb_orgao','cod_org','nom_org',null,'retorno','-- orgao --');
      }
      function retorno(id)
      {
          alert( 'O campo '+id+' foi preenchido!' );
      }

      Isto tudo na mesma tela de login.

      • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
        16 de Agosto de 2012, 19:41

         

        Luis,

        ao validar o login e a senha, voce deve recuperar o id do usuário logado e com este id fazer uma consulta na tabela tb_orgao para recuperar somente os orgãos do usuário logado. Se for isso mesmo que voce quer, tente fazer sem utilizar o ajax então, colocando a criação do campo select após a validação do login. Antes do metodo show() do form faça um teste se o usuário já está validado, remova todos os campos do formulário e adicione o campo select ao form com um botão Continuar.

        Na validação do login e senha voce deve recuperar o id do usuario e adicionar um campo oculto ao form para que ele seja submetido. ( $frm->addHiddenField('id_usuario', aqui_entra_o_id_do_usuario);

        Exemplo:

        if( teste_se_o_usuario_esta_logado && $frm->get('id_usuario') )
        {
            $frm->removeField(null,'cod_orgao,id_usuario'); // remove todos os campos do form menos o cod_orgao e o id_usuario
            $frm->setTitle('Selecione o Órgão');
            $frm->setHeight(100); // sugestão ajustar o tamanho do formulario
            $frm->setWidth(400);  // sugestão ajustar o tamanho do formulario
            // aqui voce deve recuperar os orgãos para alimentar o select
            $orgaos = TPDOConnection::executeSql("select cod_orgao, nom_orgao from tb_orgao where id_usuario = ?",$frm->get('id_usuario') );
            $frm->addSelectField('cod_orgao','Orgão:',true,$orgaos);
            $frm->addButton('Continuar','continuar','btnContinuar');
        }

        a ação 'continuar' ficará assim:

        // colocar o codigo do orgão selecionado na sessão ex: $_SESSION[APLICATIVO]['cod_orgao'] = $_POST['cod_orgao'];

        $frm->restart(); // reiniciar a aplicação

        Abraço,

Essa comunidade não possui posts nesse blog