Foros del Web » Programando para Internet » PHP »

validar precio en formulario para insertar en mysql

Estas en el tema de validar precio en formulario para insertar en mysql en el foro de PHP en Foros del Web. Hola, Quiero validar que en un input solo se escriba precio sin € ni puntos ni comas y pensaba en usar ctype_digit para validarlo, pero ...
  #1 (permalink)  
Antiguo 15/01/2013, 04:44
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 6
validar precio en formulario para insertar en mysql

Hola,
Quiero validar que en un input solo se escriba precio sin € ni puntos ni comas
y pensaba en usar ctype_digit para validarlo,
pero ahora me caigo que los precios pueden ser con decimales, entonces el punto es necesario para poner los centimos, y si permito los centimos pueden poner 1.000 tambien.
Pues no sé como puedo validar un input para que se inserte en la base de datos únicamente 1000.50?
  #2 (permalink)  
Antiguo 15/01/2013, 05:11
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: validar precio en formulario para insertar en mysql

Que tal con esto?

Código PHP:
Ver original
  1. //si te ingresan $a = 5,45 haces
  2. $b = str_replace(",",".",$precioproducto);
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #3 (permalink)  
Antiguo 15/01/2013, 06:16
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 6
Respuesta: validar precio en formulario para insertar en mysql

Cita:
Iniciado por CoriaWeb Ver Mensaje
Que tal con esto?

Código PHP:
Ver original
  1. //si te ingresan $a = 5,45 haces
  2. $b = str_replace(",",".",$precioproducto);
si vale gracias, para cambiar coma a punto,
pero no pueden poner 1.000.50
entonces pienso ahora no sería mas facila tener dos inputs
input . inputcentimos
y validar que los inputs sean numericos?
ademas siempre no lleva decimales
no es asi que se suele hacer?
  #4 (permalink)  
Antiguo 16/01/2013, 08:48
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 6
Respuesta: validar precio en formulario para insertar en mysql

Puf
Casi lo he resuelto, chapuza quizas,
he puesto input . input
y con php lo junto asi: $holidaycost = $price.".".$decimal;
despues compruebo con ctype_digit que en el formulario solo se ha rellenado con numeros.
Va perfecto, pero...
problema: si el precio es sin decimales y lo dejan en blanco, pues el ctype_digit da error, no se envia nada si esta en blanco.
Estoy buscando y probando, con if empty, con str_replace pero no consigo cambiar el valor vacio del input por un 0.
Alguna idea?
Gracias
  #5 (permalink)  
Antiguo 16/01/2013, 10:16
 
Fecha de Ingreso: febrero-2011
Ubicación: Capital Federal
Mensajes: 45
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: validar precio en formulario para insertar en mysql

Prueba sumándole cero al post del decimal

por ejemplo

Código PHP:
Ver original
  1. $precio=$_POST["precio_entero"]+($_POST["precio_decimal"]+0);
  #6 (permalink)  
Antiguo 16/01/2013, 10:24
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: validar precio en formulario para insertar en mysql

Cita:
Iniciado por helenp Ver Mensaje
si vale gracias, para cambiar coma a punto,
pero no pueden poner 1.000.50
entonces pienso ahora no sería mas facila tener dos inputs
input . inputcentimos
y validar que los inputs sean numericos?
ademas siempre no lleva decimales
no es asi que se suele hacer?
Deberias usar

Código PHP:
if(is_numeric$foo)){

Con eso te aseguras que solamente entra si es numerico.

Luego desde javascript puedes agregar una mascara o filtro, para validar que los datos sean numericos antes de mandarlos, o impedir que ingresen algo que no sean numeros.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #7 (permalink)  
Antiguo 16/01/2013, 10:26
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 6
Respuesta: validar precio en formulario para insertar en mysql

Nada,
si escribo en el form 22 y 0 como decimal imprime el 0
pero si escribo 22 y dejo decimal en blanco no escribe nada.
Gracias
  #8 (permalink)  
Antiguo 16/01/2013, 10:32
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 6
Respuesta: validar precio en formulario para insertar en mysql

Cita:
Iniciado por h2swider Ver Mensaje
Deberias usar

Código PHP:
if(is_numeric$foo)){

Con eso te aseguras que solamente entra si es numerico.

Luego desde javascript puedes agregar una mascara o filtro, para validar que los datos sean numericos antes de mandarlos, o impedir que ingresen algo que no sean numeros.
Gracias, pero eso accepta tanto puntos como comas y necesito precio asi para meter en la base de datos:
Por ejemplo
1145
1145.00
1145.50
  #9 (permalink)  
Antiguo 16/01/2013, 10:36
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: validar precio en formulario para insertar en mysql

la pregunta es ?

que tipo de dato es el campo de la base de datos donde vas a insertar ese valor?

en caso de ser tipo money no te deja ingresar con decimales, a mi me pasa en SQL, para aceptar decimales creo que se usa tipo de dato real
  #10 (permalink)  
Antiguo 16/01/2013, 10:42
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: validar precio en formulario para insertar en mysql

Pues si no quieres la parte decimal puedes usar is_int
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #11 (permalink)  
Antiguo 16/01/2013, 10:46
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 6
Respuesta: validar precio en formulario para insertar en mysql

Cita:
Iniciado por informacionsys Ver Mensaje
la pregunta es ?

que tipo de dato es el campo de la base de datos donde vas a insertar ese valor?

en caso de ser tipo money no te deja ingresar con decimales, a mi me pasa en SQL, para aceptar decimales creo que se usa tipo de dato real
Es decimal(10,2), pero eso no es el problema ya que insertar va perfecto.

El problema es escribir el precio en el formulario,
o con un input y que solo salga precio.decimales como resultado
o como estoy intentando, dos inputs, uno para el precio y otro para los decimales.
El problema es que si el input esta vacio no manda nada, entonces querria convertir el campo vacio a 0 para juntar precio.decimales, pero no lo consigo
  #12 (permalink)  
Antiguo 16/01/2013, 10:47
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 6
Respuesta: validar precio en formulario para insertar en mysql

Cita:
Iniciado por h2swider Ver Mensaje
Pues si no quieres la parte decimal puedes usar is_int
Es que la quiero, pero no siempre sino segun como salga el precio en una calculadora, por lo tanto el defecto debe de ser 0 al no ser que escriban decimales.

Etiquetas: formulario, mysql, precio
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 15:46.