Foros del Web » Programando para Internet » PHP »

Formulario

Estas en el tema de Formulario en el foro de PHP en Foros del Web. Hola, tengo un formulario con este campo: <input name="noches" type="text" id="noches" size="6" /> donde la gente pone el numero de noches, pero me gustaria poner ...
  #1 (permalink)  
Antiguo 21/02/2009, 12:14
 
Fecha de Ingreso: diciembre-2006
Mensajes: 173
Antigüedad: 17 años, 3 meses
Puntos: 2
Formulario

Hola,

tengo un formulario con este campo:
<input name="noches" type="text" id="noches" size="6" />

donde la gente pone el numero de noches, pero me gustaria poner como minimo 3 noches obligatorio, entonces si alguien pone por ejemplo 2 noches, que le salga un mensaje de que son minimo 3. Como se podria hacer?

Gracias de antemano!!
  #2 (permalink)  
Antiguo 21/02/2009, 12:20
Avatar de PeruClic  
Fecha de Ingreso: junio-2007
Ubicación: Arequipa, Peru
Mensajes: 533
Antigüedad: 16 años, 9 meses
Puntos: 7
Respuesta: Formulario

podrias hacerlo con javascript para q valide ese campo
  #3 (permalink)  
Antiguo 21/02/2009, 12:24
 
Fecha de Ingreso: diciembre-2006
Mensajes: 173
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Formulario

Ya valido el campo para que se obligatorio, pero no se como ponerle el minimo de 3, en ese campo solo ponen numeros desde el 0 al que quieran, pero yo kiero obligar a q sea minimo 3.

Algun ejemplo de codigo pa ver?

Gracias!
  #4 (permalink)  
Antiguo 21/02/2009, 12:40
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 8 meses
Puntos: 416
Respuesta: Formulario

Con PHP:

if($_POST['noches'] < 3) {
//error, tienen que ser 3 noches minimo
}

Con Javascript:
if(document.form.noches.value < 3) {
//alert('Minimo 3 noches');
}

Yo lo aplicaria con ambos, Javascript de parte del cliente y PHP de parte del servidor (Esto en caso de que el usuario tenga Javascript desactivado).
  #5 (permalink)  
Antiguo 21/02/2009, 12:41
 
Fecha de Ingreso: mayo-2007
Mensajes: 49
Antigüedad: 16 años, 10 meses
Puntos: 1
Respuesta: Formulario

Con javascript solo agregas un campo para el mensaje de advertencia:

Código HTML:
<input name="noches" type="text" id="noches" size="6" />
<p id="mensaje"></p> 
el codigo javascript seria asi:

Código HTML:
var valor = document.getElementById("noches").value;
if(valor < 3){
    var mensaje = document.createTextNode("El campo debe ser mayor a 3 noches");
    var zonaMensaje = document.getElementById("mensaje");
    zonaMensaje.appendChild(mensaje);
}
Una manera mas facil pero que no recomiendo seria con innerHTML

Código HTML:
var valor = document.getElementById("noches").value;
if(valor < 3){
    var mensaje = document.getElementById("mensaje").innerHTML("El campo debe ser mayor a 3 noches");
}

Con php solo tomarias el valor de noches:

Código PHP:
<?php 
$noches 
$_POST['noches'];
if(
$noches 3){
    
$alerta "el valor debe de ser mayor a 3 noches";
}

if(isset(
$alerta) && !empty($alerta)){
?>
<p id="mensaje"><?php echo $alerta ?></p>
<?php
}
?>
Suerte
  #6 (permalink)  
Antiguo 21/02/2009, 12:45
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 8 meses
Puntos: 416
Respuesta: Formulario

Una recomendacion, usa nombres diferentes para el ID y Name de tu input. Sino cuando trates de llamar al campo usando el ID con IE no ejecutara el codigo Javascript (*sigh*).
  #7 (permalink)  
Antiguo 21/02/2009, 13:22
 
Fecha de Ingreso: diciembre-2006
Mensajes: 173
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Formulario

Lo he entendido perfectamente todo!!

Pero el codigo que me poneis es para ponerlo en el archivo que da como resultado el formulario no??? porke yo tengo index.php y resultado.php

poniendo en index.php esto:
<script language="JavaScript">
var valor = document.getElementById("noches").value;
if(valor < 3){
var mensaje = document.createTextNode("El campo debe ser mayor a 3 noches");
var zonaMensaje = document.getElementById("mensaje");
zonaMensaje.appendChild(mensaje);
}
</script>

no me funciona, me da error, y el codigo php se supone que hay que ponerlo en resultado.php

a mi me gustaria que saltara el mensaje directamente en el index.php para no tener que cargar la pagina de nuevo.
  #8 (permalink)  
Antiguo 21/02/2009, 13:45
 
Fecha de Ingreso: diciembre-2006
Mensajes: 173
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Formulario

Intento hacerlo con la validacion Spry del dreamweaver pero no consigo la forma de hacerlo, a ver si me podeis ayudar por favor.

gracias!!!
  #9 (permalink)  
Antiguo 22/02/2009, 02:10
 
Fecha de Ingreso: agosto-2008
Ubicación: D,F
Mensajes: 412
Antigüedad: 15 años, 7 meses
Puntos: 4
Respuesta: Formulario

userman lo mejor que te han puesto es que pongas una condicion como lo pusieron arriba con un if y es muy efectivo eso has la pruebra con eso
  #10 (permalink)  
Antiguo 22/02/2009, 05:06
 
Fecha de Ingreso: diciembre-2006
Mensajes: 173
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Formulario

por mucho que hago pruebas no consigo hacerlo funcionar, me da error.

A ver si alguien me podria echar una mano por favor!!!

Gracias de antemano!!!
  #11 (permalink)  
Antiguo 22/02/2009, 11:30
 
Fecha de Ingreso: diciembre-2006
Mensajes: 173
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Formulario

Por fin lo he consigo despues de pelearme tanto y ver tanto codigo!!!

Os pongo como lo he hecho la final por si a alguien le sirve de ayuda:

<script type="text/javascript">
function noches()
{
if (document.formulario.C6.value < 6)
{
alert('Minimo 5 noches de alojamiento');
document.formulario.C6.focus; // posicionas el puntero en ese campo
return false;//le dices q no envie nada
}
}
</script>

y en el form puse esto:
<form id="formulario" method="post" name="formulario" action="resultado.php" onsubmit="return noches();">


Gracias a todos por vuesta ayuda!!!

Alguien me puede decir como hacer esto en php por si alguien tiene el javascript desabilitado.
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 07:56.