fernandotrilha Postado Julho 25, 2018 Denunciar Share Postado Julho 25, 2018 (editado) RESOLVIDO $result = str_replace("." , "" , $resul ); // Primeiro tira os pontos $result = str_replace(",",".",$result );// Subtitui a virgula por ponto Pessoal, tenho s seguinte mascara: <script type="text/javascript"> function BlockKeybord() { if(window.event) // IE { if((event.keyCode < 48) || (event.keyCode > 57)) { event.returnValue = false; } } else if(e.which) // Netscape/Firefox/Opera { if((event.which < 48) || (event.which > 57)) { event.returnValue = false; } } } function troca(str,strsai,strentra) { while(str.indexOf(strsai)>-1) { str = str.replace(strsai,strentra); } return str; } function FormataMoeda(campo,tammax,teclapres,caracter) { if(teclapres == null || teclapres == "undefined") { var tecla = -1; } else { var tecla = teclapres.keyCode; } if(caracter == null || caracter == "undefined") { caracter = "."; } vr = campo.value; if(caracter != "") { vr = troca(vr,caracter,""); } vr = troca(vr,"/",""); vr = troca(vr,",",""); vr = troca(vr,".",""); tam = vr.length; if(tecla > 0) { if(tam < tammax && tecla != 😎 { tam = vr.length + 1; } if(tecla == 😎 { tam = tam - 1; } } if(tecla == -1 || tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105) { if(tam <= 2) { campo.value = vr; } if((tam > 2) && (tam <= 5)) { campo.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam); } if((tam >= 6) && (tam <= 8)) { campo.value = vr.substr(0, tam - 5) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam); } if((tam >= 9) && (tam <= 11)) { campo.value = vr.substr(0, tam - 😎 + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam); } if((tam >= 12) && (tam <= 14)) { campo.value = vr.substr(0, tam - 11) + caracter + vr.substr(tam - 11, 3) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam); } if((tam >= 15) && (tam <= 17)) { campo.value = vr.substr(0, tam - 14) + caracter + vr.substr(tam - 14, 3) + caracter + vr.substr(tam - 11, 3) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam); } } } function maskKeyPress(objEvent) { var iKeyCode; if(window.event) // IE { iKeyCode = objEvent.keyCode; if(iKeyCode>=48 && iKeyCode<=57) return true; return false; } else if(e.which) // Netscape/Firefox/Opera { iKeyCode = objEvent.which; if(iKeyCode>=48 && iKeyCode<=57) return true; return false; } } </script> <label for="valor">Valor: </label> <input type="text" name="fvalor" size="10" maxlength="10" onkeydown="FormataMoeda(this,10,event)" onkeypress="return maskKeyPress(event)" /> Quando digito no INPUT 1050050, a mascara faz ficar como 10.500,50 Ai uso este codigo pra arrumar o numero para passar para o banco: $campo = str_replace(",", ".", "$resul"); retorna assim: 10.500.50 Porem assim não tenho como passar apar BD pois ele não aceita, teria de ser 10500,00 Mas não estou conseguindo fazer, alguém já fez algo do tipo? Editado Julho 25, 2018 por fernandotrilha Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
fernandotrilha
RESOLVIDO
$result = str_replace("." , "" , $resul ); // Primeiro tira os pontos
$result = str_replace(",",".",$result );// Subtitui a virgula por ponto
Pessoal, tenho s seguinte mascara:
<script type="text/javascript">
function BlockKeybord()
{
if(window.event) // IE
{
if((event.keyCode < 48) || (event.keyCode > 57))
{
event.returnValue = false;
}
}
else if(e.which) // Netscape/Firefox/Opera
{
if((event.which < 48) || (event.which > 57))
{
event.returnValue = false;
}
}
}
function troca(str,strsai,strentra)
{
while(str.indexOf(strsai)>-1)
{
str = str.replace(strsai,strentra);
}
return str;
}
function FormataMoeda(campo,tammax,teclapres,caracter)
{
if(teclapres == null || teclapres == "undefined")
{
var tecla = -1;
}
else
{
var tecla = teclapres.keyCode;
}
if(caracter == null || caracter == "undefined")
{
caracter = ".";
}
vr = campo.value;
if(caracter != "")
{
vr = troca(vr,caracter,"");
}
vr = troca(vr,"/","");
vr = troca(vr,",","");
vr = troca(vr,".","");
tam = vr.length;
if(tecla > 0)
{
if(tam < tammax && tecla != 😎
{
tam = vr.length + 1;
}
if(tecla == 😎
{
tam = tam - 1;
}
}
if(tecla == -1 || tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105)
{
if(tam <= 2)
{
campo.value = vr;
}
if((tam > 2) && (tam <= 5))
{
campo.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam);
}
if((tam >= 6) && (tam <= 8))
{
campo.value = vr.substr(0, tam - 5) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if((tam >= 9) && (tam <= 11))
{
campo.value = vr.substr(0, tam - 😎 + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if((tam >= 12) && (tam <= 14))
{
campo.value = vr.substr(0, tam - 11) + caracter + vr.substr(tam - 11, 3) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if((tam >= 15) && (tam <= 17))
{
campo.value = vr.substr(0, tam - 14) + caracter + vr.substr(tam - 14, 3) + caracter + vr.substr(tam - 11, 3) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
}
}
function maskKeyPress(objEvent)
{
var iKeyCode;
if(window.event) // IE
{
iKeyCode = objEvent.keyCode;
if(iKeyCode>=48 && iKeyCode<=57) return true;
return false;
}
else if(e.which) // Netscape/Firefox/Opera
{
iKeyCode = objEvent.which;
if(iKeyCode>=48 && iKeyCode<=57) return true;
return false;
}
}
</script>
<label for="valor">Valor: </label>
<input type="text" name="fvalor" size="10" maxlength="10" onkeydown="FormataMoeda(this,10,event)" onkeypress="return maskKeyPress(event)" />
Quando digito no INPUT 1050050, a mascara faz ficar como 10.500,50
Ai uso este codigo pra arrumar o numero para passar para o banco:
$campo = str_replace(",", ".", "$resul");
retorna assim:
10.500.50
Porem assim não tenho como passar apar BD pois ele não aceita, teria de ser 10500,00
Mas não estou conseguindo fazer, alguém já fez algo do tipo?
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.