Pessoal eu tenho um formulario que pega um valor de telefone da tabela, porem ele pega assim 5555(9)9999-9999 , e eu preciso tirar o nono digito (deixei marcardo ali entre (). Ou quando salva, ou quando faz o update. Será que tem como? Desde já agradeço muito a atenção de vcs.
Coloca na mascara deste campo isso:
####-####;#####-####;(##) ####-####;(##) #####-####
E muda tudo na tela do campo para ficar com 14, mesmo que no campo da sua
base tenha 11 ou mais caracteres.
Na base ele vai salvar só os números mesmo sem () -
Jailton, muito obrigado desde já por querer me ajudar, mas acho que me expressei mal. Preciso somente retirar o nono digito, preciso manter o DDD e o DDI . Por exemplo Do Banco de dados vem assim 5511-99999-99999 e preciso que fique assim 5511-9999-9999. Como era antigamente os numeros
Coloque no Evento OnLoad:
Troque {Fone} pelo nome do seu campo de Telefone.
if (strlen(trim({Fone}))==16) {
{Fone}=substr({Fone}, 0, 5) . substr({Fone}, -10);
}
Um exemplo ele vindo da tabela assim:
5511-87999-99999 ele vai ficar assim na tela para ser salvo: 5511-7999-99999, removendo
o digito na posição (8) que você passou.
Mas o recomendável seria você fazer uma normalização de uma vez inteira na tabela,
usando esse código que te passei em um ‘controle’ ou ‘blank_’ e percorrer a tabela inteira
da base e já salvar esse campo ou usando uma QUERY Replace do banco para fazer isso.
E depois nos seus formulários você só usuária a mascara ## correta neles.
Detalhe as mascaras do Scriptcase, ## trabalham só com números vindo da base,
ai você teria que gravar nos campos somente os números sem () -, nem espaço e usar
as mascaras para formatar eles corretamente.
$valor= ‘1234567890abcde’;
echo substr($valor,0,8).substr($valor,10, strlen($valor));
Baseado na sugestão do Jailton.
Muito Obrigado! Vou testar aqui.