Foros del Web » Programando para Internet » PHP »

Bucle para recoger todas las variables de un form

Estas en el tema de Bucle para recoger todas las variables de un form en el foro de PHP en Foros del Web. Hola a todos!! He hecho un bucle para recoger todas las variables de un formulario mediante POST,pero por razones extrañas y misteriosas me recoge todas ...
  #1 (permalink)  
Antiguo 19/04/2006, 09:05
 
Fecha de Ingreso: abril-2005
Mensajes: 287
Antigüedad: 19 años
Puntos: 0
Bucle para recoger todas las variables de un form

Hola a todos!!

He hecho un bucle para recoger todas las variables de un formulario mediante POST,pero por razones extrañas y misteriosas me recoge todas las variables menos una(que no es ni la primera ni la final,es una intermedia).Aquí dejo el código por si alguien me puede ayudar:
Código PHP:
$i=0;
$valores=array();
foreach(
$_POST as $nombre_campo=>$valor)
{
     if(
$valor=="Guardar")//El valor del botón de envío no nos interesa
            
break;
         
$asignacion="\$".$nombre_campo."='".$valor."';";
       eval(
$asignacion);
       
$valores[$i]=$valor//Almacenamos los valores modificados(si es que se ha modificado alguno)
    
$i++;

Gracias
  #2 (permalink)  
Antiguo 19/04/2006, 09:25
 
Fecha de Ingreso: abril-2005
Mensajes: 287
Antigüedad: 19 años
Puntos: 0
Ya lo he solucionado. Gracias
  #3 (permalink)  
Antiguo 19/04/2006, 09:31
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años
Puntos: 2
No se si sera este el problema: estas utilizando un break, eso significa que cuando $valor sea igual a "Guardar", la ejecución del foreach se detendrá y no procesará los valores restantes del arreglo. En lugar de break deberías utilizar continue:

Código PHP:
<?php 
...
foreach(
$_POST as $nombre_campo=>$valor

     if(
$valor=="Guardar")//El valor del botón de envío no nos interesa 
            
continue; 
         
$asignacion="\$".$nombre_campo."='".$valor."';"
       .... 
}
O simplemente verificiar que if($valor!="Guardar"):

Código PHP:
<?php 
...
foreach(
$_POST as $nombre_campo=>$valor

     if(
$valor !="Guardar") { //El valor del botón de envío no nos interesa 
        
$asignacion="\$".$nombre_campo."='".$valor."';"
       ....
    } 
}
Además, podrías utilizar otra forma para recorrer los campos: en el formulario colocas como nombre de los campos que te interesan algo como tu_nombre[]. Y en el script php lo recorres:

Código PHP:
<?php 
...
foreach(
$_POST['tu_nombre'] as $nombre_campo=>$valor

    
$asignacion="\$".$nombre_campo."='".$valor."';"
.....    
}
Asi no tenes que verificar cuales campos son los que no te interesan.
Saludos.
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 00:16.