Foros del Web » Programando para Internet » PHP »

formulario con select multiple por mail

Estas en el tema de formulario con select multiple por mail en el foro de PHP en Foros del Web. Hola a [email protected], He construido un formulario en el que hay un campo de tipo select. En HTML, puedes seleccionar las opciones que quieras aplicando ...
  #1 (permalink)  
Antiguo 20/01/2005, 10:02
 
Fecha de Ingreso: diciembre-2003
Ubicación: Madrid
Mensajes: 10
Antigüedad: 14 años
Puntos: 0
Información formulario con select multiple por mail

Hola a [email protected],

He construido un formulario en el que hay un campo de tipo select. En HTML, puedes seleccionar las opciones que quieras aplicando "multiple" a select. Pero en PHP, como sabéis, sólo se envía la última selección.
Esto se resuelve fácilmente con un script como:

Código:
<form action="form.php" method="POST">   
Nombre: <input type="text" name="nombre"><br>   
Apellidos: <input type="text" name="apellidos"><br>   
Email: <input type="text" name="email"> <br>   
Opciones: <br>   
<select multiple name="seleccion[]">    
<option value="1">1</option>    
<option value="2">2</option>    
<option value="3">3</option>    
<option value="4">4</option>    
<option value="5">5</option>   
...   
</select><br>   
<input type="submit" value="Enviar" > 
</form> 

.............

<?php 
echo "Nombre: ". $_POST["nombre"]; 
echo "<br>Apellidos: ". $_POST["apellidos"]; 
echo "<br>E-mail: ". $_POST ["email"]; 
$seleccion=$_POST["seleccion"]; 

for ($i=0;$i<count($seleccion);$i++)    
{     
echo "<br> Selección " . $i . ": " . $seleccion[$i];    
} 
?>


Donde conseguimos recuperar la seleccion. Sin embargo, el problema está a la hora de insertarlo en el mail. Lo tengo de la siguiente manera:

Código:
$destinatario = "[email protected]";
$asunto = "Este es el asunto";
$cuerpo = " sentencia 1";
$cuerpo .= "sentencia 2";
$cuerpo .= "sentencia 3";
$cuerpo .= "-->> aquí quiero insertar la selección <<--";
$headers = "From:[email protected]";

.....

mail($destinatario,$asunto,$cuerpo,$headers);
Pero lógicamente no funciona.
¿Sabéis alguna manera de poder enviar mediante este formulario, las diferentes opciones que el usuario pueda seleccionar?

Gracias y saludos.
  #2 (permalink)  
Antiguo 20/01/2005, 10:41
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 15 años, 3 meses
Puntos: 8
Cuando haces ese for, ya de paso puedes ir creando una variable que se vaya concatenando a si misma.... entonces se van agregando los valores.
Esa variable luego la metes en el mail.
Código PHP:
$seleccion_para_mail "";  // con esto evitas lo E_NOTICEs
for ($i=0;$i<count($seleccion);$i++)    
{     
echo 
"<br> Selección " $i ": " $seleccion[$i];    
$seleccion_para_mail .= "Selección " $i ": " $seleccion[$i]."\n";    // fijate en el .= significa que el texto se vaya agregando al final.
                               // con el \n se crean los saltos de linea (renglones)



$cuerpo " sentencia 1";
$cuerpo .= "sentencia 2";
$cuerpo .= "sentencia 3";
$cuerpo .= $seleccion_para_mail "; 

Saludos

Última edición por fran86; 20/01/2005 a las 10:43
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 22:46.