Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Mudar a mascara de um TEntry Boa tarde. Tenho um formulário onde quero alterar o campo CNPJ / CPF conforme o tipo selecionado em Tipo: PF / PJ? Coloquei o seguinte código (que escrevi há muito tempo atrás): $script = new TElement('script'); $script->type = 'text/javascript'; $javascript = " $(document).on('change','select[name="tipo_cpf_cnpj"]' , function(event){ //alert('En...
RF
Mudar a mascara de um TEntry  
Boa tarde.

Tenho um formulário onde quero alterar o campo CNPJ / CPF conforme o tipo selecionado em Tipo: PF / PJ?

Coloquei o seguinte código (que escrevi há muito tempo atrás):
$script = new TElement('script');
$script->type = 'text/javascript';
$javascript = "
$(document).on('change','select[name="tipo_cpf_cnpj"]' , function(event){
//alert('Entrou');
$('input[name="cnpj_cpf"]').val('');

$('select[name="tipo_cpf_cnpj"] > option:selected').each(function(){
detail_tipodocumento = $(this).text();
});

switch(detail_tipodocumento.toLowerCase()){
case 'pessoa física':
$('input[name="cnpj_cpf"]').val('');
$('input[name="cnpj_cpf"]').attr({onkeypress:'return tentry_mask(this,event,"999.999.999-99")'});
break;

case 'pessoa jurídica':
$('input[name="cnpj_cpf"]').val('');
$('input[name="cnpj_cpf"]').attr({onkeypress:'return tentry_mask(this,event,"99.999.999/9999-99")'});
break;

default:
$('input[name="cnpj_cpf"]').val('');
$('input[name="cnpj_cpf"]').attr({onkeypress:'return tentry_mask(this,event,"99999999999999")'});
break
}
});";
$script->add($javascript);
$table_general->addRow()->addCell($script);

Como perdi o projeto original não estou conseguindo resolver o seguinte erro:

Parse error: syntax error, unexpected 'tipo_cpf_cnpj' (T_STRING) in C:xampphtdocstranspalogappcontroldestinatariocliente_destinatario.class.php on line 100

Poderiam me ajudar?

Abaixo segue o código completo.

  1. <?php
  2. /**
  3.  * >>>> ATENÇÃO   <<<<
  4.  * Colocar código para que ao selecionar o tipo de pessoa pf ou pj, alterar a mascara no campo cnpj_cpf
  5.  */
  6. class cliente_destinatario extends TPage
  7. {
  8.     protected $form// form
  9.     
  10.     use Adianti\Base\AdiantiStandardFormTrait// Standard form methods
  11.     
  12.     /**
  13.      * Class constructor
  14.      * Creates the page and the registration form
  15.      */
  16.     function __construct()
  17.     {
  18.         parent::__construct();
  19.         
  20.         $this->setDatabase('banco');              // defines the database
  21.         $this->setActiveRecord('destinatario');     // defines the active record
  22.         
  23.         // creates the form
  24.         $this->form = new BootstrapFormBuilder('form_destinatario');
  25.         $this->form->setFormTitle('Cadastro de destinatário');
  26.         
  27.         // create the form fields
  28.         $id               = new TEntry('id');
  29.         $tipo_cpf_cnpj    = new TDBCombo('tipo_cpf_cnpj','banco','pf_pj','descricao','descricao');//TEntry('tipo_cpf_cnpj'); // novo campo
  30.         $nome_rzsocizl    = new TEntry('nome_rzsocizl');
  31.         $apelido_fantasia = new TEntry('apelido_fantasia');
  32.         $endereco = new TEntry('endereco');
  33.         $cep = new TEntry('cep');
  34.         $numero = new TEntry('numero');
  35.         $complemento = new TEntry('complemento');
  36.         $bairro = new TEntry('bairro');
  37.         $telefone = new TEntry('telefone');
  38.         $contato = new TEntry('contato');
  39.         $email = new TEntry('email');
  40.         $cnpj_cpf = new TEntry('cnpj_cpf');
  41.         $ie_rg = new TEntry('ie_rg');
  42.         $uf              = new TDBCombo('uf''banco''uf''descricao''descricao');
  43.         $cidade          = new TDBCombo('cidade''banco''cidade''descricao''descricao');
  44.         // add the fields
  45.         $row $this->form->addFields( [ new TLabel('Código'),           $id ],
  46.                                        [ new TLabel('Tipo: PF PJ ?'),    $tipo_cpf_cnpj    ], 
  47.                                        [ new TLabel('CNPJ / CPF'),       $cnpj_cpf ],
  48.                                        [ new TLabel('I.E / RG'),         $ie_rg ] );
  49.         $row->layout = ['col-sm-2','col-sm-2''col-sm-4','col-sm-4' ];
  50.         $row $this->form->addFields( [ new TLabel('Apelido / Nome Fantasia'),                 $apelido_fantasia ],
  51.                                        [ new TLabel('Nome / Rz Social'),                        $nome_rzsocizl ] );
  52.         $row->layout = ['col-sm-6''col-sm-6' ];                               
  53.         $row $this->form->addFields( [ new TLabel('CEP'),       $cep ],
  54.                                        [ new TLabel('Endereço'),  $endereco ] );
  55.         $row->layout = ['col-sm-3''col-sm-9' ];
  56.         $row $this->form->addFields( [ new TLabel('Número'),       $numero ],
  57.                                        [ new TLabel('Complemento'),  $complemento ] );
  58.         $row->layout = ['col-sm-3''col-sm-9' ];
  59.         $row $this->form->addFields( [ new TLabel('U.F'),       $uf ],
  60.                                        [ new TLabel('Cidade'),    $cidade ] );
  61.         $row->layout = ['col-sm-3''col-sm-9' ];
  62.         $row $this->form->addFields( [ new TLabel('Bairro'),       $bairro ],
  63.                                        [ new TLabel('Telefone'),     $telefone ] );
  64.         $row->layout = ['col-sm-6''col-sm-6' ];
  65.         $row $this->form->addFields( [ new TLabel('Contato'),        $contato ],
  66.                                        [ new TLabel('E-mail'),         $email ] );
  67.         $row->layout = ['col-sm-6''col-sm-6' ];
  68.              
  69.         
  70.         // set sizes
  71.         $id->setSize('100%');
  72.         $nome_rzsocizl->setSize('100%');
  73.         $tipo_cpf_cnpj->setSize('100%');
  74.         $apelido_fantasia->setSize('100%');
  75.         $endereco->setSize('100%');
  76.         $cep->setSize('100%');
  77.         $numero->setSize('100%');
  78.         $complemento->setSize('100%');
  79.         $bairro->setSize('100%');
  80.         $uf->setSize('100%');
  81.         $cidade->setSize('100%');
  82.         $telefone->setSize('100%');
  83.         $contato->setSize('100%');
  84.         $email->setSize('100%');
  85.         $cnpj_cpf->setSize('100%');
  86.         $ie_rg->setSize('100%');
  87.         /* Mascara de entrada de dados para o tipo de documento 
  88.         É comparado texto porque o input lê tela 
  89.         e tela é texto 
  90.         no switch coloque a palavra de comparação em minuscula 
  91.         */ 
  92.         $script = new TElement('script'); 
  93.         $script->type 'text/javascript'
  94.         $javascript 
  95.         $(document).on('change','select[name="tipo_cpf_cnpj"]' , function(event){ 
  96.         //alert('Entrou'); 
  97.         $('input[name="cnpj_cpf"]').val(''); 
  98.         
  99.         $('select[name="tipo_cpf_cnpj"] > option:selected').each(function(){ 
  100.         detail_tipodocumento = $(this).text(); 
  101.         }); 
  102.         
  103.         switch(detail_tipodocumento.toLowerCase()){ 
  104.         case 'pessoa física': 
  105.         $('input[name="cnpj_cpf"]').val(''); 
  106.         $('input[name="cnpj_cpf"]').attr({onkeypress:'return tentry_mask(this,event,"999.999.999-99")'}); 
  107.         break; 
  108.         
  109.         case 'pessoa jurídica': 
  110.         $('input[name="cnpj_cpf"]').val(''); 
  111.         $('input[name="cnpj_cpf"]').attr({onkeypress:'return tentry_mask(this,event,"99.999.999/9999-99")'}); 
  112.         break; 
  113.         
  114.         default: 
  115.         $('input[name="cnpj_cpf"]').val(''); 
  116.         $('input[name="cnpj_cpf"]').attr({onkeypress:'return tentry_mask(this,event,"99999999999999")'}); 
  117.         break 
  118.         } 
  119.         });"
  120.         $script->add($javascript); 
  121.         $table_general->addRow()->addCell($script); 
  122.         
  123.         
  124.         
  125.         //Validações dos campos
  126.         $email             ->addValidation('E-mail', new TEmailValidator);
  127.         //$cnpj              ->setMask('99.999.999/9999-99');
  128.         $cep               ->setMask('99999-999');
  129.         $telefone          ->setMask('(99)9999-9999');
  130.         $nome_rzsocizl     ->addValidation('Nome Fantasia', new TRequiredValidator);
  131.         $apelido_fantasia  ->addValidation('Razão Social', new TRequiredValidator);
  132.         $uf                ->addValidation('U.F', new TRequiredValidator);
  133.         $cidade            ->addValidation('Cidade', new TRequiredValidator);
  134.         $bairro            ->addValidation('Bairro', new TRequiredValidator);
  135.         $cep               ->addValidation('CEP', new TRequiredValidator);
  136.         $endereco          ->addValidation('Endereço', new TRequiredValidator);
  137.         
  138.         if (!empty($id))
  139.         {
  140.             $id->setEditable(FALSE);
  141.         }
  142.         
  143.         /** samples
  144.          $fieldX->addValidation( 'Field X', new TRequiredValidator ); // add validation
  145.          $fieldX->setSize( '100%' ); // set size
  146.          **/
  147.          
  148.         // create the form actions
  149.         $btn $this->form->addAction(_t('Save'), new TAction([$this'onSave']), 'fa:floppy-o');
  150.         $btn->class 'btn btn-sm btn-primary';
  151.         $this->form->addAction(_t('New'),  new TAction([$this'onEdit']), 'fa:eraser red');
  152.         $this->form->addAction_t('Back'), new TAction(array('lista_de_destinatarios','onReload')),  'fa:arrow-circle-o-left blue' );
  153.         // Volta para a lista
  154.         
  155.         // vertical box container
  156.         $container = new TVBox;
  157.         $container->style 'width: 90%';
  158.         $container->add(new TXMLBreadCrumb('menu.xml'__CLASS__));
  159.         $container->add($this->form);
  160.         
  161.         parent::add($container);
  162.     }
  163. }

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (2)


NR

Está acusando erro de sintaxe na linha 100. Você está escapando corretamente as aspas duplas?
RF

Boa noite, Certo agora entendi o erro.
Ajustei aqui agora funcionou

Segue o resumo do código, para quem precisar ter referência também.

Obrigado pela atenção


$pf_pj = new TDBCombo('pf_pj', 'banco', 'pf_pj', 'descricao', 'descricao');//TEntry('pf_pj');
$cpf_cnpj = new TEntry('cpf_cnpj');



/* Mascara de entrada de dados para o tipo de documento
É comparado texto porque o input lê tela
e tela é texto
no switch coloque a palavra de comparação em minuscula
*/
$script = new TElement('script');
$script->type = 'text/javascript';
$javascript = "
$(document).on('change','select[name="pf_pj"]' , function(event){
//alert('Entrou');
$('input[name="cpf_cnpj"]').val('');

$('select[name="pf_pj"] > option:selected').each(function(){
detail_tipodocumento = $(this).text();
});

switch(detail_tipodocumento.toLowerCase()){
case 'pessoa física':
$('input[name="cpf_cnpj"]').val('');
$('input[name="cpf_cnpj"]').attr({onkeypress:'return tentry_mask(this,event,"999.999.999-99")'});
break;

default:
$('input[name="cpf_cnpj"]').val('');
$('input[name="cpf_cnpj"]').attr({onkeypress:'return tentry_mask(this,event,"99.999.999/9999-99")'});
break
}
});";
$script->add($javascript);
parent::add($script);