Ir para o conteúdo

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

Campos selects combinados

10 de Março de 2013, 16:18 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 5 vezes

Boa Tarde!!

Pessoal estou montando um form de cadastro , onde coloquei o campo addCepField.

Está funcionando conforme o exemplo, porém, eu queria que em vez colocar os campos addTextField para Estado e Cidade eu usaria os selects combinados.

Pensei desta forma ,pois se o usuário não estiver com internet no momento do cadastro não irá conseguir fazer a consulta do  cep e portanto teria que preencher manualmente.

Desta forma o usuário poderia usar das duas formas:com internet - consulta Cep; sem internet preenchimento manual(Estado e Cidade).

Quando uso consultar CEP o Estado é preenchido corretamente,mas a cidade não.

Estou fazendo assim:

$frm = new TForm('Cadastro');
// adicionar o campo hidden para a coluna chave da tabela.
$frm->addHiddenField('id');
// adicionando abas ao formulário
$pc = $frm->addPageControl('pc'); // criar instância do controlador de páginas
// adicionar a pagina "Cadastro"
$pc->addPage('Cadastro',true,true,'abaCadastro'); // a partir daqui, tudo que for adicionado ao form ficará dentro da aba até encontrar o metodo closeGroup();
// adicionar os campos na aba cadastro
$frm->addGroupField('gp1','Dados Principais');
$frm->addTextField('nome','Nome:',60);
$frm->addDateField('dat_nascimento','Data Nasc.:',true);
$fldCep = $frm->addCepField('num_cep2','Cep:',true,null,null,'endereco','bairro','cidade','cod_uf_2',null,null,null,null,null,null,'pesquisarCepCallback','pesquisarCepBeforeSend');
$frm->addTextField('endereco','Endereço:',60);
$frm->addTextField('numero','Número:',10);
$frm->addTextField('bairro','Bairro:',60);
$frm->addSelectField('cod_uf_2','Estado 2:',false);
$frm->addSelectField('cidade2'    ,'Município 2:',null,null,false);
$frm->combinarSelects('cod_uf_2','cidade2','vw_municipios','cod_uf','cod_municipio','nom_municipio','-- Municípios --','0','Nenhum Município Encontrado');
$frm->addTextField('profissao','Profissao:',60);
$frm->closeGroup();

Tem alguma forma de fazer com que o select da cidade também seja preenchido de acordo com o retorno da consulta do cep??

 

Abraços

 


Autor: wilson flavio rodrigues


22 comentários

  • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
    11 de Março de 2013, 17:03

     

    Wilson,

    neste caso teremos que utilizar o campo uf e municipio como selects combinados, criar um campo oculto para receber o codigo do municipio e utilizar uma função de callback para disparar o evento change do campo uf e preencher o combo de municipios.

    Segue o exemplo completo:

    <?php
    $frm = new TForm('Exemplo Campo CEP com Select Combinado',300,600);
    // define a largura das colunas verticais do formulario para alinhamento dos campos
    $frm->setColumns(array(100,100));
    $frm->addHiddenField('cod_municipio_temp','');
    $fldCep = $frm->addCepField('num_cep2','Cep:',true,null,null
        ,'des_endereco'
        ,null
        ,null
        ,'cod_uf'
        ,null
        ,null
        ,null
        ,'cod_municipio_temp'
        ,null
        ,null,'myCallback');
       
        $frm->addTextField('des_endereco','Endereço:',60);
        $frm->addSelectField('cod_uf','Estado:',false);
        $frm->addSelectField('cod_municipio','Município:',null,null,false);
        $frm->combinarSelects('cod_uf','cod_municipio','vw_municipios','cod_uf','cod_municipio','nom_municipio','-- Municípios --','0','Nenhum Município Encontrado');

    $frm->show();
    ?>
    <script>
    function myCallback(dataset)
    {
        jQuery("#cod_uf").change();
    }
    </script>

    Abraço.

Essa comunidade não possui posts nesse blog