Foros del Web » Programando para Internet » Javascript »

¿porque no me funciona?:Poner puntos en cifras de cantidades

Estas en el tema de ¿porque no me funciona?:Poner puntos en cifras de cantidades en el foro de Javascript en Foros del Web. Hola a todos! Resulta que tengo el siguiente código que me coloca automaticamente los puntos de miles a medida que voy escribiendo la cifra, pero ...
  #1 (permalink)  
Antiguo 21/11/2006, 04:10
 
Fecha de Ingreso: noviembre-2006
Mensajes: 14
Antigüedad: 17 años, 5 meses
Puntos: 0
¿porque no me funciona?:Poner puntos en cifras de cantidades

Hola a todos! Resulta que tengo el siguiente código que me coloca automaticamente los puntos de miles a medida que voy escribiendo la cifra, pero a la hora de guardarlo en una BBDD no me almacena los ultimos ceros, es decir, que si pongo 10.000, me almacena 10 en vez de 10.000. Alguien me podría decir que hago mal por favor? Muchas gracias, un saludo

function puntoadj(){

var nNmb=document.forms[0].txtPresAdj.value;
while(nNmb.indexOf(".") != -1)
nNmb = nNmb.replace(".","");
var sRes = "";
for (var j, i = nNmb.length - 1, j = 0; i >= 0; i--, j++)
sRes = nNmb.charAt(i) + ((j > 0) && (j % 3 == 0)? ".": "") + sRes;
document.forms[0].txtPresAdj.value = sRes;
}
  #2 (permalink)  
Antiguo 21/11/2006, 04:17
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Hola sonia.gc,

sucede que para la base de datos 10.000 es lo que para nosotros es 10,000 es decir, lo toma como un 10 con 3 decimales. Si el campo de la base de datos es de tipo entero (int) pues simplemente le quita esos decimales.

Deberías meterlos en la bd sin los puntos

un saludo
  #3 (permalink)  
Antiguo 21/11/2006, 04:22
 
Fecha de Ingreso: noviembre-2006
Mensajes: 14
Antigüedad: 17 años, 5 meses
Puntos: 0
Hola de nuevo, muchas gracias por tu ayuda, pero ahora tengo otra duda... para introducirlo en la base de datos sin esos puntos¿ habria alguna funcion que lo hiciera ya hecha? Muchas gracias, un saludo.Sonia
  #4 (permalink)  
Antiguo 21/11/2006, 04:24
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
¿qué lenguaje estás usando en el servidor?
  #5 (permalink)  
Antiguo 21/11/2006, 04:26
 
Fecha de Ingreso: noviembre-2006
Mensajes: 14
Antigüedad: 17 años, 5 meses
Puntos: 0
El lenguaje que uso es PHP y la base de datos SQL. Muchas gracias por ayudarme.Sonia
  #6 (permalink)  
Antiguo 21/11/2006, 04:38
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Pues podrías, aprovechando que del form llega como string, usar str_replace() para quitar los puntos

algo así como

Código PHP:
<?
$n 
'10.000';
$n str_replace(".","",$n);
echo 
$n;
?>
guarda inicialmente lo que llegue del form en $n

Código PHP:
$n $_POST["elcampo"]; 
y luego lo reemplazas por la cadena pasada por el str_replace

Código PHP:
$n str_replace(".","",$n); 
y en la base de datos guardas $n

No sé si habrá una mejor forma de hacerlo


saludos
  #7 (permalink)  
Antiguo 21/11/2006, 05:48
 
Fecha de Ingreso: noviembre-2006
Mensajes: 14
Antigüedad: 17 años, 5 meses
Puntos: 0
Muchisimas gracias, ha funcionado, lo guarda correctamente. Ahora estoy intentando que al recoger los datos guardados vuelvan a aparecer con los puntos de los miles. Es un jaleo esto y yo solo soy una principiante.

Muchisimas gracias me has ayudado muchisimo.Un saludo, Sonia
  #8 (permalink)  
Antiguo 21/11/2006, 07:14
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Pues para darle formato a la salida de la BD podrías usar number_format() desde php

Código PHP:
$num el valor sacado de la base de datos;
$num number_format($num0'','.'); 
Luego imprimes $num en el documento

tampoco sé si existe alguna forma mejor de hacerlo.

Un saludo
  #9 (permalink)  
Antiguo 22/11/2006, 05:22
 
Fecha de Ingreso: noviembre-2006
Mensajes: 14
Antigüedad: 17 años, 5 meses
Puntos: 0
Muchas gracias por todo, sale perfecto ahora. Un saludo, Sonia
  #10 (permalink)  
Antiguo 22/11/2006, 05:36
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Muchas de nadas, sonia, me alegra que lo resolvieras

un saludo
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:28.