Autor Tema: no me funciona is_numeric  (Leído 1695 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Javier71

  • Novato
  • *
  • Mensajes: 8
  • Puntuación: 0
    • Ver Perfil
no me funciona is_numeric
« : 10 de octubre de 2012, 03:48:02 pm »
Hola

Tengo un problemita con is_numeric en un formulario:

En un formulario tengo un campo donde se debe introducir un valor numérico que puede ser 0 u otro número. Este es el campo:

Mts bonificados:
<input type="text" name="bonificados"  value="<?php if(isset($bonificados)) { echo $bonificados; } else { echo '0'; } ?>" size="5" maxlength="10" style="width: 54px" />

La idea es que si ya se ha enviado el formulario anteriormente y por alguna razón debo regresar a modificar algo, entonces el último valor ingresado aparezca en el campo, si no se llenó previamente aparece cero (0). Ahora bien, el problema es cuando envío los datos.

Para verificar que el dato ingresado sea 0 o superior uso esto:

if(is_numeric($_POST['bonificados'])) {
 $bonificados= $_POST['bonificados'];
 } else {
  $bonificados= NULL;
  echo 'Por favor ingrese un valor numérico en el campo: mts bonificados';
  }

Esta verificación debería permitir que yo escribiera '0' en el campo. Sin embargo al poner '0' me falla. Lo más raro es que no me imprime el mensaje de error que puse en el echo, simplemente me devuelve una página en blanco. Para que todo funcione debo poner '00' no entiendo porque no admite el cero solo 

En mi tabla MYSQL el campo bonificados es INT.

Bueno, si alguien tiene idea de lo que pasa se le agradece sus comentarios.

Desconectado oyepez003

  • Moderador Global
  • Usuario Dedicado
  • *****
  • Mensajes: 157
  • Puntuación: 8
  • Sexo: Masculino
  • La suerte esta en el conocimiento
    • Ver Perfil
    • Soluciones tecnológicas YepSua C.A.
Re:no me funciona is_numeric
« Respuesta #1 : 11 de octubre de 2012, 09:59:28 am »
Hola Javier.

El is_numeric si esta funcionando. esta funcion verifica si el parametro que le pasas es de tipo numerico, y tu le estas pasando un string ya que todos los valores del arreglo $_POST son manejados como string.

Prueba haciendo

if(is_numeric((int) $_POST['bonificados'])) {

}


o en su defecto:

if(is_numeric(intval($_POST['bonificados']))) {

}
--
Omar Yepez
http://www.yepsua.com The YepSua team
http://jquery4php.sourceforge.net/ The jQuery4PHP project
Sigueme: http://twitter.com/oyepez003

Desconectado erha

  • Novato
  • *
  • Mensajes: 15
  • Puntuación: 1
  • Sexo: Masculino
  • Chief Software Engineer
    • Ver Perfil
Re:no me funciona is_numeric
« Respuesta #2 : 15 de octubre de 2012, 05:01:47 pm »
Amigo, los datos que vienen en un post son tratados todos como string
Chief Software Engineer
PHP & MySQL Developer
Guadalajara, Jalisco