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. }

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto 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);