Foros del Web » Programando para Internet » PHP »

Insertar arrays en una cadena...???

Estas en el tema de Insertar arrays en una cadena...??? en el foro de PHP en Foros del Web. Hola a todos!! Tengo un problema/duda y necesitaria que me ayudaseis. Necesito mandar varios campos de formulario a un mail, usando la funcion mail(). El ...
  #1 (permalink)  
Antiguo 04/05/2009, 01:23
 
Fecha de Ingreso: diciembre-2005
Ubicación: BCN
Mensajes: 165
Antigüedad: 18 años, 4 meses
Puntos: 2
Insertar arrays en una cadena...???

Hola a todos!!

Tengo un problema/duda y necesitaria que me ayudaseis. Necesito mandar varios campos de formulario a un mail, usando la funcion mail(). El problema es que el campo donde se escribe lo que va a mandar el formulario es una cadena no? pues aqui viene mi problema.

En el formulario, hay 3 campos de texto en el que poder escribir. En estos 3 se puede escribir o no escribir. Entonces lo que necesito es que el campo rellenado se envie por correo pero los que esten en blanco no se envien. No se si entendeis la idea....esto seria muy facil hacerlo con un bucle pero al ser una cadena, el cuerpo del mensaje...me complica las cosas...

El problema viene en que hay una pagina de comfirmacion despues de pulsar sobre enviar, con lo que los campos vacios no los creo y los que contienen valores les nombro con un campo hidden, con lo que si el campo 1 y 2 existen, me crea 2 hidden pero no un tercero.

Por si acaso os pongo aqui un ejemplo grafico:

Código:
FORMULARIO
1-Rellene los campos necesarios:

1.-[        perro    ]
2.-[        gatos   ]
3.-[                    ]

         [ Enviar ]

Pag2.
Usted escojió:

-perro
-gatos

[  Comfirmar  ]
--------------------------------

En este caso me llegaria un email diciendo:

El usuario indicó:
-perro
-gatos

En el caso de aver llenado solo un campo llegaria:

El usuario indicó:
-perro
Espero no aver liado mas la cosa con el ejemplo :D
Un saludo!
  #2 (permalink)  
Antiguo 04/05/2009, 03:16
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: Insertar arrays en una cadena...???

Bones! :P

Del mismo modo que consigues sacar un "El usuario indicó: -perro -gatos" puedes enviar el correo.

Por ejemplo si los hidden se llaman campo1, campo2, y campo3 y supongo que usas POST, pues sería algo así:

Código PHP:
     // Si el campo 1 está escrito:
if( isset($_POST["campo1"]) && $_POST["campo1"] ){
   
$campos=$_POST["campo1"];

   if( isset(
$_POST["campo2"]) && $_POST["campo2"] )
      
$campos=$campos."<br/><br/>".$_POST["campo2"];
   
   if( isset(
$_POST["campo3"]) && $_POST["campo3"] )
      
$campos=$campos."<br/><br/>".$_POST["campo3"];
}

     
// Si el campo 2 está escrito y el 1 no:
else if( isset($_POST["campo2"]) && $_POST["campo2"] ){
   
$campos=$_POST["campo2"];
   
   if( isset(
$_POST["campo3"]) && $_POST["campo3"] )
      
$campos=$campos."<br/><br/>".$_POST["campo3"];
}

     
// Si el campo 3 está escrito y el 1 y el 2 no:
else if( isset($_POST["campo3"]) && $_POST["campo3"] ){
   
$campos=$_POST["campo3"];
}

echo 
$campos
No está probado, pero así a ojo creo que debería irte.

Saludos
  #3 (permalink)  
Antiguo 04/05/2009, 04:32
 
Fecha de Ingreso: diciembre-2005
Ubicación: BCN
Mensajes: 165
Antigüedad: 18 años, 4 meses
Puntos: 2
Respuesta: Insertar arrays en una cadena...???

Vale entiendo la idea mas o menos pero hay manera de agilizarlo si tenemos 40 campos?

Saludos! y gracias
  #4 (permalink)  
Antiguo 05/05/2009, 08:41
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: Insertar arrays en una cadena...???

Yo haría algo así:

Código PHP:
         // Esto lo pones en medio de tu código
   // Usamos la función pasándole el primer campo que leerá y el último
$camposConcatenados=concatenarCampos(1,40);
echo 
$camposConcatenados;


         
// Esto lo pones al final de todo de tu código, con las funciones
   // Creamos la función concatenarCampos que será la que irá concatenando
function concatenarCampos($id$maxCampos){
      
// Hacemos un bucle que recorra desde el campo inicial al final
   
while($id<$maxCampos){
         
// Si has escrito algo en el campo en cuestión
      
if( isset($_POST["campo".$id]) && $_POST["campo".$id] ){
            
// Si ya has encontrado algún campo escrito anteriormente, lo concatena a continuación
         
if ( isset($campos) && $campos){
            
$campos=$campos."<br/><br/>".$_POST["campo".$id];
         }
            
// Si es el primer campo escrito que encuentra, crea la variable $campos y la rellena con lo escrito
         
else{
            
$campos=$_POST["campo".$id];
         }
      }
      
$id++;
   }
   return 
$campos;

Esto sí lo he probado y funciona correctamente

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 07:38.