Foros del Web » Programando para Internet » PHP »

Mascara de entrada numerica

Estas en el tema de Mascara de entrada numerica en el foro de PHP en Foros del Web. Ante todo un saludo, Podría alguien ayudarme con lo siguente: Necesito hacer que cada vez que escriba un monto por ejemplo 1574412.963 en una caja ...
  #1 (permalink)  
Antiguo 18/06/2007, 08:54
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 4 meses
Puntos: 0
Pregunta Mascara de entrada numerica

Ante todo un saludo,
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> 
este codigo me funciona pero luego que recargo la pagina para q se ejecute el metodo post, si alguien puede ayudarme con esto le agradezco de ante mano
  #2 (permalink)  
Antiguo 18/06/2007, 08:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Mascara de entrada numerica

Si lo quieres hacer sin enviar el contenido necesitas usar AJAX para enviar el valor directamente sin enviar todo el formulario.

Saludos.
  #3 (permalink)  
Antiguo 18/06/2007, 09:04
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: Mascara de entrada numerica

ok Gatorv muchas gracias, lo que realmente quiero hacer es un script, o un js para para llamarlo en tdos las paginas donde quiero q se establezca la mascara de entrada para los campos numericos, lo que me gustaria saber es si con el codigo de la clase q estoy usando puedo hacer que al llmar el javascript del post y perder el foco sin recargar la pagina se complete la accion.
  #4 (permalink)  
Antiguo 18/06/2007, 09:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Mascara de entrada numerica

Si se puede, pero como te comento necesitas usar AJAX para enviar el valor una vez que el usuario cambio de campo, asi el valor se envia al servidor, y le envias el valor ya formateado de regreso a tu campo.

Saludos.
  #5 (permalink)  
Antiguo 18/06/2007, 09:20
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 4 meses
Puntos: 0
Pregunta Re: Mascara de entrada numerica

ok, gracias Gatorv, el problema es que no he trabajado nunca con ajax y no tengo idea de como comenzar, si sabes de algun link en donde pueda ver como se trabaja con ajax por favor estaria muy agradecido por tu respuesta

saludos.
  #6 (permalink)  
Antiguo 18/06/2007, 09:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Mascara de entrada numerica

Te recomiendo que te des una vuelta por el foro de AJAX, ahi encontraras muchos ejemplos, aunque en particular, yo te diria que usaras la libreria Prototype.

Saludos.
  #7 (permalink)  
Antiguo 18/06/2007, 09:29
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 4 meses
Puntos: 0
Pregunta Re: Mascara de entrada numerica

gracias GatorV, la libreria de la que me hablas debo intarlarla o ya viene por defecto en el php o es una classe del windows.(soy algo nuevo en phP),pero le estoy poniendo ganas en este proyecto.
  #8 (permalink)  
Antiguo 18/06/2007, 09:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Mascara de entrada numerica

Es una libreria de Javascript no de PHP.

Aqui te dejo el link:
http://www.prototypejs.org/

Y un muy buen tutorial para usar AJAX:
http://www.prototypejs.org/learn/introduction-to-ajax

Saludos.
  #9 (permalink)  
Antiguo 18/06/2007, 09:36
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 4 meses
Puntos: 0
Pregunta Re: Mascara de entrada numerica

gracias por tu ayuda GatorV, agradecido , le dare un vistazo a el tutorial para trabjar con la libreria prototype .

saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 00:41.