Foros del Web » Programando para Internet » PHP »

Envio formulario select

Estas en el tema de Envio formulario select en el foro de PHP en Foros del Web. Buenos dias: Soy muy novato en php, y tengo un formulario de contacto, en el cual ahora quiero añadir la opcion que si un visitante ...
  #1 (permalink)  
Antiguo 21/12/2010, 03:20
 
Fecha de Ingreso: diciembre-2010
Mensajes: 3
Antigüedad: 13 años, 4 meses
Puntos: 0
Envio formulario select

Buenos dias:

Soy muy novato en php, y tengo un formulario de contacto, en el cual ahora quiero añadir la opcion que si un visitante quiere ponerse en contacto con un departamento en concreto lo seleccione con un select.
Eso esta hecho pero no se como asociar diferentes email a cada opcion del select.

este es el codigo que tengo:

Cita:
<?

if (!$HTTP_POST_VARS){

?>

<form action="contacto.php" method="post">



<h3>Tu Opinión nos interesa</h3>
<br />
<h5> Selecciona el departamento de destino:

<select id="destinatario" name="destinatario[]">
<option value="Empleo">Empleo y ofertas</option>
<option value="gerencia">Gerencia</option>

</select>
<br />
<br />
<br />

<label id="Nombre" for="Nombre" >Nombre</label>
<br />

<input type="text" name="Nombre" size="32" />
<br />
<label for="Email" id="Email">Email:</label>
<br />
<input type="text" name="Email" size="32" />
<br />
<label for="Coment" id="Coment" >Comentarios:</label>
<br />
<textarea name="Coment" cols="32" rows="6"></textarea>
<br />
<br />

<input type="submit" value="Enviar"/>

</form>

<?

}else{

//Estoy recibiendo el formulario, compongo el cuerpo

$cuerpo = "Formulario enviado\n";

$cuerpo .= "Nombre: " . $HTTP_POST_VARS["Nombre"] . "\n";

$cuerpo .= "Email: " . $HTTP_POST_VARS["Email"] . "\n";

$cuerpo .= "Comentarios: " . $HTTP_POST_VARS["Coment"] . "\n";



//mando el correo...
if ($HTTP_POST_VARS ["destinatario"]=="Empleo"){

mail("[email protected]","Formulario recibido",$cuerpo);
}
elseif ($HTTP_POST_VARS["destinatario"]=="gerencia"){
mail("[email protected]","Formulario recibido",$cuerpo);
}






//doy las gracias por el envío

echo "Gracias por rellenar el formulario.<br> Se ha enviado correctamente.";

}

?>
  #2 (permalink)  
Antiguo 21/12/2010, 04:00
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Envio formulario select

Primero decirte que $HTTP_POST_VARS está obsoleto. Sustituye todos ellos por $_POST.

Aqui te dejo lo que pedias del correo. Espero que sea esto.
Código PHP:
//mando el correo... 
if ($_POST['destinatario'][0]=="Empleo"){ //lo que haces es enviar un array(destinatario) dentro de un array(POST)

mail("[email protected]","Formulario recibido",$cuerpo); 
}
elseif (
$_POST["destinatario"][0]=="gerencia"){    
mail("[email protected]","Formulario recibido",$cuerpo); 

__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #3 (permalink)  
Antiguo 22/12/2010, 19:02
 
Fecha de Ingreso: diciembre-2010
Mensajes: 3
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Envio formulario select

Buenas noches:

Lo primero muchas gracias por la respuesta, he entendido la idea pero al copiar e incluir el codigo que me pasaste y tras cambiar tos los http_post_ var por $_post
el formulario sigue funcionando pero independientemente de la opcion que elija en el select, siempre lo envia a la primera direccion que encuentra en el codigo.

Muchas gracias
  #4 (permalink)  
Antiguo 23/12/2010, 01:24
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 8 meses
Puntos: 214
Respuesta: Envio formulario select

<saludos>
Pues yo usaria else if (separado, no unido)
Adicional, podrías usar en el value de
cada option el correo como tal a donde
será enviado

Ej
Código HTML:
Ver original
  1. <select...>
  2. ... <!-- etc-->

Veo que le pones un nombre y lo tratas como
un array, para que esto si el select no lo tienes
como múltiple?? solo nombralo sencillo (Ej: name='destinatario')

Sería útil el nombre como lo tienes actualmente
si vas a dar la opción al usuario de seleccionar
varias áreas a las cuales enviar el mismo mensaje
(en cuyo caso te falta la palabra "multiple" en la definición del select)

Y pues así el asunto, ya no necesitas if en donde recibes,
solo recibes tal cual el valor del select,
y usas ese valor para el envio del mail
(así el asunto, este select debe ser de obligatorio diligenciamiento)

</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 23/12/2010, 08:50
Avatar de darklegend  
Fecha de Ingreso: diciembre-2010
Mensajes: 21
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Envio formulario select

writ te recomiendo que lo hagas con un switch es mas estetico y mas practico
te mando tu codigo corregido a ver si te sirve feliz navidad
<?

if (!$_POST){

?>

<form action="contacto.php" method="post">



<h3>Tu Opinión nos interesa</h3>
<br />
<h5> Selecciona el departamento de destino:

<select id="destinatario" name="destinatario[]">
<option value="Empleo">Empleo y ofertas</option>
<option value="gerencia">Gerencia</option>

</select>
<br />
<br />
<br />

<label id="Nombre" for="Nombre" >Nombre</label>
<br />

<input type="text" name="Nombre" size="32" />
<br />
<label for="Email" id="Email">Email:</label>
<br />
<input type="text" name="Email" size="32" />
<br />
<label for="Coment" id="Coment" >Comentarios:</label>
<br />
<textarea name="Coment" cols="32" rows="6"></textarea>
<br />
<br />

<input type="submit" value="Enviar"/>

</form>

<?

}else{

//Estoy recibiendo el formulario, compongo el cuerpo

$cuerpo = "Formulario enviado\n";

$cuerpo .= "Nombre: " . $_POST['Nombre'] . "\n";

$cuerpo .= "Email: " . $_POST['Email'] . "\n";

$cuerpo .= "Comentarios: " . $_POST['Coment'] . "\n";

$prueba=$_POST ['destinatario'];

//mando el correo...
switch($prueba){
case $prueba=="Empleo";
$correo = '[email protected]';
break;
case $prueba=="gerencia";
$correo = '[email protected]';
break;
}
$para=$correo;
mail($para, "Formulario recibido", $cuerpo);

//doy las gracias por el envío

echo "Gracias por rellenar el formulario.<br> Se ha enviado correctamente.";

}

?>
  #6 (permalink)  
Antiguo 23/12/2010, 13:00
wjr
 
Fecha de Ingreso: diciembre-2010
Mensajes: 32
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Envio formulario select

No entiendo porque usas el select con un array

Código HTML:
Ver original
  1. <select id="destinatario" name="destinatario[]">

debería ser así:

Código PHP:
Ver original
  1. <select id="destinatario" name="destinatario">

Y luego como dijo Vallu:

Código PHP:
//mando el correo... 
if ($_POST['destinatario']=="Empleo"){ //lo que haces es enviar un array(destinatario) dentro de un array(POST)

mail("[email protected]","Formulario recibido",$cuerpo); 
}
elseif (
$_POST["destinatario"]=="gerencia"){    
mail("[email protected]","Formulario recibido",$cuerpo); 

  #7 (permalink)  
Antiguo 26/12/2010, 17:33
 
Fecha de Ingreso: diciembre-2010
Mensajes: 3
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Envio formulario select

Buenas noches:

Muchas gracias antetodo a todos los maestros del php, pero he probado todas las soluciones que me comentais y no funcuona ninguna.
No se en que me estoy equivocando, a ver si podeis echarme una mano.

Muchas gracias de nuevo.
  #8 (permalink)  
Antiguo 26/12/2010, 23:02
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 8 meses
Puntos: 214
Respuesta: Envio formulario select

Cita:
Iniciado por writ Ver Mensaje
Buenas noches:

Muchas gracias antetodo a todos los maestros del php, pero he probado todas las soluciones que me comentais y no funcuona ninguna.
No se en que me estoy equivocando, a ver si podeis echarme una mano.

Muchas gracias de nuevo.
en su totalidad?? incluso haciendo lo que te comente de usar los mails en el select???
y si es así, postea lo que hiciste y los resultados de cada proceso
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #9 (permalink)  
Antiguo 27/12/2010, 09:04
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Envio formulario select

Prueba cambiando el value de las options del select a valores numéricos

Etiquetas: envio, select, formulario
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:39.