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

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework 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);