Foros del Web » Programando para Internet » PHP »

Formulario cambia inputboxes a rojo solo en submit

Estas en el tema de Formulario cambia inputboxes a rojo solo en submit en el foro de PHP en Foros del Web. Buenas tardes, Tengo un formulario que hace el action sobre el propio php y tengo lo siguiente para los inputboxes: Código: <input name="name" type="text" class="<?php ...
  #1 (permalink)  
Antiguo 18/08/2006, 08:32
Avatar de alexsaiz  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 85
Antigüedad: 17 años, 8 meses
Puntos: 0
Pregunta Formulario cambia inputboxes a rojo solo en submit

Buenas tardes,

Tengo un formulario que hace el action sobre el propio php y tengo lo siguiente para los inputboxes:

Código:
<input name="name" type="text" class="<?php if ($name=="") {echo "inputbox-rojo";} else {echo "inputbox-normal";}?>" id="name" size="15" maxlength="15" />
Es decir, que se pongan en rojo si por ejemplo si han dejado la casilla NOMBRE en blanco. La cuestión es que cuando cargo el formulario la casilla NOMBRE aparece directamente en rojo. Yo creo que la cuestion sería hacer un IF para que solo se pusiera en rojo cuando se hace submit en el formulario. Sólo que no se hacerlo ya que hay otro IF...

He probado esto pero no funciona...

Código:
<?php if (isset($_POST['submit'])) {>
<input name="password2" type="password" class="<?php if ($password!=$password2) {echo "inputbox-rojo";} else {echo "inputbox-normal";}? >" id="password2" size="18" maxlength="15" /><} ?>
¿Qué opinais?
Muchas gracias por adelantado.
ALEJANDRO.
  #2 (permalink)  
Antiguo 18/08/2006, 08:59
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 2 meses
Puntos: 0
desde mi punto de vista crea un input hidden con value 1, al enviar preguntas:
Código PHP:
if($_POST['enviar'] = 1) {
  if(
$_POST['nombre_del_campo']) == "" {
    
//tu funcion de colores
  
} else {
    
//lo contrario
  
}

y asi para cada campo que quieras validarahora pasa saber que todos los campo esten ok declara una variable booleana al principio en true si cualquiera de los campos no esta lleno la cambias a false y quiebras el resto del codigo.

saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #3 (permalink)  
Antiguo 18/08/2006, 09:07
Avatar de alexsaiz  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 85
Antigüedad: 17 años, 8 meses
Puntos: 0
Gracias por tu respuesta.

Creo que me pierdo... Porque si hago un input hidden no saldrá al menos que se haga click en submit, y yo quiero que aparezca desde un principio en el PHP. Y que cuando se haga click en el submit, si está vacio se ponga la casilla roja.

¿Me entendéis?

Gracias.
ALEJANDRO.

Cita:
Iniciado por maralbust Ver Mensaje
desde mi punto de vista crea un input hidden con value 1, al enviar preguntas:
Código PHP:
if($_POST['enviar'] = 1) {
  if(
$_POST['nombre_del_campo']) == "" {
    
//tu funcion de colores
  
} else {
    
//lo contrario
  
}

y asi para cada campo que quieras validarahora pasa saber que todos los campo esten ok declara una variable booleana al principio en true si cualquiera de los campos no esta lleno la cambias a false y quiebras el resto del codigo.

saludos
  #4 (permalink)  
Antiguo 18/08/2006, 09:26
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 2 meses
Puntos: 0
es la idea pues, cuando carga el form por primera vez aparecen los input de forma normal y si deja uno en blanco y le da submit, los que quedaron en blanco apareceran rojos.

o entendi mal?
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #5 (permalink)  
Antiguo 18/08/2006, 09:44
Avatar de alexsaiz  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 85
Antigüedad: 17 años, 8 meses
Puntos: 0
OK, lo había entendido yo mal, voy a probar. Muchas gracias por tu ayuda.

Alejandro.
  #6 (permalink)  
Antiguo 20/08/2006, 20:26
Avatar de alexsaiz  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 85
Antigüedad: 17 años, 8 meses
Puntos: 0
He probado a hacer esto, pero no me funciona, ya que el campo me sale en rojo y con el valor 1 nada más abrir el php. ¿Alguna idea?

Código PHP:
<input name="name" type"hidden" value="1" class="<?php if($_POST['submit'] = 1) {
  if(
$_POST['name'] == "")  {
    echo 
"inputbox-rojo";
  } else {
  echo 
"inputbox-normal";
  }
}
?>" id="name" size="15" maxlength="15" />
  #7 (permalink)  
Antiguo 20/08/2006, 23:37
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
1) El error es porque en la primera condicional estás haciendo una asignación (=) no una comparación (==) por lo que siempre devolverá true.

2) No es necesario un campo oculto extra. Al buscar la existencia directamente sobre la matriz $_POST[xxx] (o directamente incluso) es válido el proceso:
Código PHP:
<input name="name" type"hidden" value="1" class="<?php if(isset($_POST['name']) && empty($_POST['name']))  {
    echo 
"inputbox-rojo";
  } else {
  echo 
"inputbox-normal";
  }
?>" id="name" size="15" maxlength="15" />

>> Por favor procurar mantener el hilo en los temas originales.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 20/08/2006 a las 23:42
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 19:03.