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.
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.
- <?php
- /**
- * >>>> ATENÇÃO <<<<
- * Colocar código para que ao selecionar o tipo de pessoa pf ou pj, alterar a mascara no campo cnpj_cpf
- */
- class cliente_destinatario extends TPage
- {
- protected $form; // form
- use Adianti\Base\AdiantiStandardFormTrait; // Standard form methods
- /**
- * Class constructor
- * Creates the page and the registration form
- */
- function __construct()
- {
- parent::__construct();
- $this->setDatabase('banco'); // defines the database
- $this->setActiveRecord('destinatario'); // defines the active record
- // creates the form
- $this->form = new BootstrapFormBuilder('form_destinatario');
- $this->form->setFormTitle('Cadastro de destinatário');
- // create the form fields
- $id = new TEntry('id');
- $tipo_cpf_cnpj = new TDBCombo('tipo_cpf_cnpj','banco','pf_pj','descricao','descricao');//TEntry('tipo_cpf_cnpj'); // novo campo
- $nome_rzsocizl = new TEntry('nome_rzsocizl');
- $apelido_fantasia = new TEntry('apelido_fantasia');
- $endereco = new TEntry('endereco');
- $cep = new TEntry('cep');
- $numero = new TEntry('numero');
- $complemento = new TEntry('complemento');
- $bairro = new TEntry('bairro');
- $telefone = new TEntry('telefone');
- $contato = new TEntry('contato');
- $email = new TEntry('email');
- $cnpj_cpf = new TEntry('cnpj_cpf');
- $ie_rg = new TEntry('ie_rg');
- $uf = new TDBCombo('uf', 'banco', 'uf', 'descricao', 'descricao');
- $cidade = new TDBCombo('cidade', 'banco', 'cidade', 'descricao', 'descricao');
- // add the fields
- $row = $this->form->addFields( [ new TLabel('Código'), $id ],
- [ new TLabel('Tipo: PF PJ ?'), $tipo_cpf_cnpj ],
- [ new TLabel('CNPJ / CPF'), $cnpj_cpf ],
- [ new TLabel('I.E / RG'), $ie_rg ] );
- $row->layout = ['col-sm-2','col-sm-2', 'col-sm-4','col-sm-4' ];
- $row = $this->form->addFields( [ new TLabel('Apelido / Nome Fantasia'), $apelido_fantasia ],
- [ new TLabel('Nome / Rz Social'), $nome_rzsocizl ] );
- $row->layout = ['col-sm-6', 'col-sm-6' ];
- $row = $this->form->addFields( [ new TLabel('CEP'), $cep ],
- [ new TLabel('Endereço'), $endereco ] );
- $row->layout = ['col-sm-3', 'col-sm-9' ];
- $row = $this->form->addFields( [ new TLabel('Número'), $numero ],
- [ new TLabel('Complemento'), $complemento ] );
- $row->layout = ['col-sm-3', 'col-sm-9' ];
- $row = $this->form->addFields( [ new TLabel('U.F'), $uf ],
- [ new TLabel('Cidade'), $cidade ] );
- $row->layout = ['col-sm-3', 'col-sm-9' ];
- $row = $this->form->addFields( [ new TLabel('Bairro'), $bairro ],
- [ new TLabel('Telefone'), $telefone ] );
- $row->layout = ['col-sm-6', 'col-sm-6' ];
- $row = $this->form->addFields( [ new TLabel('Contato'), $contato ],
- [ new TLabel('E-mail'), $email ] );
- $row->layout = ['col-sm-6', 'col-sm-6' ];
- // set sizes
- $id->setSize('100%');
- $nome_rzsocizl->setSize('100%');
- $tipo_cpf_cnpj->setSize('100%');
- $apelido_fantasia->setSize('100%');
- $endereco->setSize('100%');
- $cep->setSize('100%');
- $numero->setSize('100%');
- $complemento->setSize('100%');
- $bairro->setSize('100%');
- $uf->setSize('100%');
- $cidade->setSize('100%');
- $telefone->setSize('100%');
- $contato->setSize('100%');
- $email->setSize('100%');
- $cnpj_cpf->setSize('100%');
- $ie_rg->setSize('100%');
- /* 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="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);
- //Validações dos campos
- $email ->addValidation('E-mail', new TEmailValidator);
- //$cnpj ->setMask('99.999.999/9999-99');
- $cep ->setMask('99999-999');
- $telefone ->setMask('(99)9999-9999');
- $nome_rzsocizl ->addValidation('Nome Fantasia', new TRequiredValidator);
- $apelido_fantasia ->addValidation('Razão Social', new TRequiredValidator);
- $uf ->addValidation('U.F', new TRequiredValidator);
- $cidade ->addValidation('Cidade', new TRequiredValidator);
- $bairro ->addValidation('Bairro', new TRequiredValidator);
- $cep ->addValidation('CEP', new TRequiredValidator);
- $endereco ->addValidation('Endereço', new TRequiredValidator);
- if (!empty($id))
- {
- $id->setEditable(FALSE);
- }
- /** samples
- $fieldX->addValidation( 'Field X', new TRequiredValidator ); // add validation
- $fieldX->setSize( '100%' ); // set size
- **/
- // create the form actions
- $btn = $this->form->addAction(_t('Save'), new TAction([$this, 'onSave']), 'fa:floppy-o');
- $btn->class = 'btn btn-sm btn-primary';
- $this->form->addAction(_t('New'), new TAction([$this, 'onEdit']), 'fa:eraser red');
- $this->form->addAction( _t('Back'), new TAction(array('lista_de_destinatarios','onReload')), 'fa:arrow-circle-o-left blue' );
- // Volta para a lista
- // vertical box container
- $container = new TVBox;
- $container->style = 'width: 90%';
- $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
- $container->add($this->form);
- parent::add($container);
- }
- }
Está acusando erro de sintaxe na linha 100. Você está escapando corretamente as aspas duplas?
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);