Foros del Web » Programando para Internet » PHP »

Problema con bucles o echo

Estas en el tema de Problema con bucles o echo en el foro de PHP en Foros del Web. Hola amigos, estoy tratando de hacer una validación de un formulario con PHP, hasta ahí todo bien. Ahora lo que quiero es mostrar los errores ...
  #1 (permalink)  
Antiguo 03/11/2010, 16:04
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Problema con bucles o echo

Hola amigos, estoy tratando de hacer una validación de un formulario con PHP, hasta ahí todo bien. Ahora lo que quiero es mostrar los errores del formulario en caso de que los haya. Voy validando cada campo y si hay un error almaceno el texto en un array. Después intento mostrarlo recorriéndolo con un bucle pero sin embargo no me funciona u.u' Dejo el código que tengo ahora:
Código PHP:
Ver original
  1. <?php
  2.   $nick = $_REQUEST['nombre'];
  3.   $puntos = $_REQUEST['puntos'];
  4.   $cx = $_REQUEST['coordx'];
  5.   $cy = $_REQUEST['coordy'];
  6.   $enviar = true;
  7.   $errores = array();
  8.   $f = ' por favor</p><br />';
  9.   $l = strlen(comentario)-1000;
  10.   if(empty($nick)){
  11.    $enviar = false;
  12.    array_push($errores, "<p class='error'>Escribe tu nombre,$f");
  13.   }
  14.   if($puntos == '0'){
  15.    $enviar = false;
  16.    array_push($errores, "<p class='error'>Indica tus puntos,$f");
  17.   }
  18.   for($i=0;$i<count($cx);$i++){
  19.    $n=$i+1;
  20.    $c=$cx[$i];
  21.    if(empty($c)){
  22.     $enviar=false;
  23.     array_push($errores, "<p class='error'>Rellena las coordenadas X de tu $n ª colonia,$f");
  24.    }
  25.    elseif(!preg_match('%^\d+$%',$c)){
  26.     $enviar=false;
  27.     array_push($errores, "<p class='error'>Introduce un número válido en las coordenadas X de tu $n ª colonia,$f");
  28.    }
  29.   }
  30.   for($i=0;$i<count($cy);$i++){
  31.    $n=$i+1;
  32.    $c=$cy[$i];
  33.    if(empty($c)){
  34.     $enviar=false;
  35.     array_push($errores, "<p class='error'>Rellena las coordenadas Y de tu $n ª colonia,$f");
  36.    }
  37.    elseif(!preg_match('%^\d+$%',$c)){
  38.     $enviar=false;
  39.     array_push($errores, "<p class='error'>Introduce un número válido en las coordenadas Y de tu $n ª colonia,$f");
  40.    }
  41.   }
  42.   if(!$enviar){
  43.    //print_r($errores);
  44.    //si pongo el print_r() sí me funciona y me pone todos
  45.    //los valores que debería haber según los errores
  46.   ?>
  47.   <h1 class="titulo">Datos</h1>
  48.   <div class="error-container">
  49.    <p class='titulo'>Los siguientes errores han ocurrido:</p>
  50.    <ul>
  51.    <?php
  52.    for($i=0;$i<count($errores);$i++){
  53.    ?>
  54.     <li><?php echo $errores[i] ?></li>
  55.    <?php
  56.    }
  57.    ?>
  58.    </ul>
  59.   </div>
Esto genera un código así:
Código HTML:
Ver original
  1. <div class="error-container">
  2.   <p class='titulo'>Los siguientes errores han ocurrido:</p>
  3.   <ul>
  4.    <li></li>
  5.    <li></li>
  6.    <!-- ... -->
  7.   </ul>
  8. </div>
Espero vuestra ayuda.
Saludos y gracias (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #2 (permalink)  
Antiguo 03/11/2010, 16:21
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Problema con bucles o echo

Saludos

El error se encuentra aqui

Código PHP:
Ver original
  1. <?php
  2. //Antes
  3.     <li><?php echo $errores[i] ?></li>
  4. //Modificado
  5.     <li><?php echo $errores[$i] ?></li>
  6. ?>
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 03/11/2010, 16:35
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Problema con bucles o echo

Vale, llevo 1 hora repasando todo el código y por un $ no funcionaba xD Esque yo vengo de JS y todavía estoy acostumbrándome a la sintaxis de PHP. Muchas gracias (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red

Etiquetas: bucles, echo
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:52.