Foros del Web » Programando para Internet » PHP »

Aceptar solamente números en formulario PHP

Estas en el tema de Aceptar solamente números en formulario PHP en el foro de PHP en Foros del Web. Hola a todos, este es mi primer tema, y lamentablemente es para pedir ayuda. No se si es posible, yo creo que si, pero lo ...
  #1 (permalink)  
Antiguo 15/09/2012, 14:01
 
Fecha de Ingreso: septiembre-2012
Mensajes: 3
Antigüedad: 12 años, 3 meses
Puntos: 0
Pregunta Aceptar solamente números en formulario PHP



Hola a todos, este es mi primer tema, y lamentablemente es para pedir ayuda.
No se si es posible, yo creo que si, pero lo he intentado de muchas formas y no lo he logrado.
Lo que necesito hacer es simplemente que en un formulario me acepte solo números, que al tratar de escribir una letra no me lo acepte (creo que eso es con Javascript, que no me interesa por el momento) ó tal vez que cuando le de click al botón "Enviar" y vea que el formulario tiene letras, no se lo acepte.


Por ejemplo:
Código HTML:
<form method="post" action="index.php"> 
 
  <input type="text" name="telefono">
  <input type="submit" value="Enviar"> 
Quiero hacer que en ese formulario solo me acepte números para que sea un numero de teléfono válido.

Gracias de antemano,


Última edición por jpinedo; 16/09/2012 a las 04:33 Razón: remover firma
  #2 (permalink)  
Antiguo 15/09/2012, 14:36
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 15 años, 1 mes
Puntos: 168
Respuesta: Aceptar solamente números en formulario PHP

Bienvenido, estamos para ayudar,
depende de vos donde queres hacer la validación, si en cliente ( javascript ) servidor ( php ).
Con expresiones regulares podes hacerlo.
  #3 (permalink)  
Antiguo 15/09/2012, 15:16
Avatar de Eucodance  
Fecha de Ingreso: febrero-2011
Ubicación: Puerto Deseado
Mensajes: 11
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Aceptar solamente números en formulario PHP

Hola ¿cómo estas? Si, se puede.

El HTML
Código HTML:
Ver original
  1. <input type="text" name="telefono" onkeypress="return numeros(event)">

El JS

Código Javascript:
Ver original
  1. function numeros(e){
  2.     key = e.keyCode || e.which;
  3.     tecla = String.fromCharCode(key).toLowerCase();
  4.     letras = " 0123456789";
  5.     especiales = [8,37,39,46];
  6.  
  7.     tecla_especial = false
  8.     for(var i in especiales){
  9.  if(key == especiales[i]){
  10.      tecla_especial = true;
  11.      break;
  12.         }
  13.     }
  14.  
  15.     if(letras.indexOf(tecla)==-1 && !tecla_especial)
  16.         return false;
  17. }

Suerte!
  #4 (permalink)  
Antiguo 15/09/2012, 16:45
 
Fecha de Ingreso: septiembre-2012
Mensajes: 3
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Aceptar solamente números en formulario PHP

Cita:
Iniciado por Eucodance Ver Mensaje
Hola ¿cómo estas? Si, se puede.

El HTML
Código HTML:
Ver original
  1. <input type="text" name="telefono" onkeypress="return numeros(event)">

El JS

Código Javascript:
Ver original
  1. function numeros(e){
  2.     key = e.keyCode || e.which;
  3.     tecla = String.fromCharCode(key).toLowerCase();
  4.     letras = " 0123456789";
  5.     especiales = [8,37,39,46];
  6.  
  7.     tecla_especial = false
  8.     for(var i in especiales){
  9.  if(key == especiales[i]){
  10.      tecla_especial = true;
  11.      break;
  12.         }
  13.     }
  14.  
  15.     if(letras.indexOf(tecla)==-1 && !tecla_especial)
  16.         return false;
  17. }

Suerte!
Gracias!! Si tenia claro que se podía con Javascript, pero me interesaba saber que si se podía hacer con PHP, ya que me acomoda más. Pero igual un millón de gracias, mes sirve para el momento.

Cita:
Iniciado por rodrigo791 Ver Mensaje
Bienvenido, estamos para ayudar,
depende de vos donde queres hacer la validación, si en cliente ( javascript ) servidor ( php ).
Con expresiones regulares podes hacerlo.
Gracias, y me interesa hacer la validación por el servidor vía PHP, osea hacer que en ese form solo se pueda escribir números. Pero creo que eso se hace directamente con Javscript, para que sea con PHP, luego de escribir el numero y darle al "submit" verificaría si es numero o letra. ¿existe alguna posibilidad que en ese form solo se puedan escribir números y no me deje escribir letras?
  #5 (permalink)  
Antiguo 15/09/2012, 16:54
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 18 años, 7 meses
Puntos: 58
Respuesta: Aceptar solamente números en formulario PHP

En PHP tendría que comprobar una vez enviado el formulario si el valor es un número con is_numeric
  #6 (permalink)  
Antiguo 15/09/2012, 16:57
 
Fecha de Ingreso: septiembre-2012
Mensajes: 3
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Aceptar solamente números en formulario PHP

Cita:
Iniciado por jossss Ver Mensaje
En PHP tendría que comprobar una vez enviado el formulario si el valor es un número con [URL="http://php.net/manual/es/function.is-numeric.php"]is_numeric[/URL]
Eso traté, no se si te molesta mucho, pero... ¿ podrías dame un ejemplo?
  #7 (permalink)  
Antiguo 15/09/2012, 17:01
Avatar de Eucodance  
Fecha de Ingreso: febrero-2011
Ubicación: Puerto Deseado
Mensajes: 11
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Aceptar solamente números en formulario PHP

Con PHP

Código PHP:
Ver original
  1. <?php
  2. $tel = 1;
  3. if (!is_numeric($tel)) {
  4. echo "No son numeros";
  5. }  
  6. else {
  7. echo "Son numeros";
  8. }
  9. ?>

Saludos
  #8 (permalink)  
Antiguo 15/09/2012, 17:06
Avatar de asdmaster  
Fecha de Ingreso: marzo-2010
Mensajes: 98
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Aceptar solamente números en formulario PHP

7.3.2. Validar un campo de texto con valores numéricos

Se trata de obligar al usuario a introducir un valor numérico en un cuadro de texto. La condición JavaScript consiste en:

valor = document.getElementById("campo").value;
if( isNaN(valor) ) {
return false;
}

Si el contenido de la variable valor no es un número válido, no se cumple la condición. La ventaja de utilizar la función interna isNaN() es que simplifica las comprobaciones, ya que JavaScript se encarga de tener en cuenta los decimales, signos, etc.

A continuación se muestran algunos resultados de la función isNaN():

isNaN(3); // false
isNaN("3"); // false
isNaN(3.3545); // false
isNaN(32323.345); // false
isNaN(+23.2); // false
isNaN("-23.2"); // false
isNaN("23a"); // true
isNaN("23.43.54"); // true

es un copy paste del manual javascript de librosweb.es

Etiquetas: formulario, numeros, validar
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 14:08.