Podría alguien ayudarme con lo siguente:
Necesito hacer que cada vez que escriba un monto por ejemplo 1574412.963 en una caja de texto al transcribirlo automaticamente se coloque asi:15.744.120,96 , es decir crear una mascara de entrada para la caja, ya lo he intentado creando una clase en php y llamandola a traves de un javascript, asi me quedo el codigo:
Código PHP:
<?php
class mascaranumeros
{
function formato($numero,$cantDec,$moneda,$sepMil=true){
$posPunto = strrpos($numero, "."); //obtengo la pos del punto (separador de decimales
if($posPunto===false){
//no tiene decimales
return $moneda." ".(($sepMil)?numeros::sepMil($numero):$numero);
}else{
//tiene decimales
$num = explode(".",$numero);
$entera = ($sepMil)?numeros::sepMil($num[0]):$num[0];
$decimal = ($cantDec)?numeros::sepDec($num[1],$cantDec):"";
return $moneda." ".$entera.$decimal;
}
}
function sepMil($numero){
return strrev(wordwrap(strrev($numero),3,".",1));
}
function sepDec($numero,$cantDec){
$cant = strlen($numero);
if($cant > 2)
return ",".substr($numero,0,$cantDec);
elseif($cant<2)
return ",".$numero."0";
else
return ",".$numero;
}
}
?>
Código HTML:
<body> <form method="post"> <label> <input name="moneda" type="text" id="moneda" onblur="return colocarmascara(this);" /> </label> <p> <label></label> </p> </form> <script language="javascript" type="text/javascript"> function colocarmascara(){ <?php $valor=mascaranumeros::formato($_POST[moneda],2,""); ?> document.getElementById('moneda').value="<?php echo $valor; ?>" </script> </body>