Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Enviar opcion del select por php

Estas en el tema de Enviar opcion del select por php en el foro de PHP en Foros del Web. Hola a todos. Estoy dando los últimos toques a un formulario y me he encontrado con una duda que no consigo resolver. Dentro del formulario ...
  #1 (permalink)  
Antiguo 26/01/2014, 10:55
 
Fecha de Ingreso: enero-2014
Mensajes: 4
Antigüedad: 10 años, 2 meses
Puntos: 0
Enviar opcion del select por php

Hola a todos.
Estoy dando los últimos toques a un formulario y me he encontrado con una duda que no consigo resolver.
Dentro del formulario (html) tengo un select simple con el siguiente código:
<div class="controls">
<select id="mi_select" name="mi_select" class="span12">
<option value="Departament">Select Department</option>
<option value="General">General</option>
<option value="Commercial">Commercial</option>
<option value="Sales">Sales</option>
<option value="Commercial">Deposit</option>
<option value="Sales">Withdraw</option>
</select>
</div>
Este código, obviamente, está dentro de su etiqueta form correspondiente, con method post.
Ahora bien, cuando hago el envío por php llegan al correo todos los datos extraídos menos la selección del select.

Este es mi código php:

<?php

if(!empty($_POST['firstname']) AND
!empty($_POST['lastname']) AND
!empty($_POST['useremail']) AND
!empty($_POST['usermessage'])){

$to ="[email protected]";
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From:".$_POST['firstname']."\r\n";
$tema="Contact from website";
$mensaje="
<table border='0' cellspacing='2' cellpadding='2'>

<tr>
<td width='20%' align='center' bgcolor='#FFFFCC'><strong>Firstname:</strong></td>
<td width='80%' align='left'>$_POST[firstname]</td>
</tr>
<tr>
<td width='20%' align='center' bgcolor='#FFFFCC'><strong>Lastname:</strong></td>
<td width='80%' align='left'>$_POST[lastname]</td>
</tr>
<tr>
<td width='20%' align='center' bgcolor='#FFFFCC'><strong>Email:</strong></td>
<td width='80%' align='left'>$_POST[useremail]</td>
</tr>
<tr>
<td align='center' bgcolor='#FFFFCC'><strong>Departament:</strong></td>
<td align='left'>$_POST[mi_select]</td>

</tr>

<tr>
<td align='center' bgcolor='#FFFFCC'><strong>Message:</strong></td>
<td align='left'>$_POST[usermessage]</td>
</tr>

</table>
";
@mail($to,$tema,$mensaje,$headers);
echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=../contact-send.html'>";
} else {
echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=../contact-error.html'>";
}



?>

¿Qué estoy haciendo mal?
He probado con $_REQUEST pero tampoco ha servido.

Cuando me llega el mensaje con los datos del formulario en lugar de aparecer la opción que había marcado en el select aparece la palabra Array.

Firstname: Inés
Lastname: MCh
Email: [email protected]
Departament: Array
Message: Prueba

Un saludo.
  #2 (permalink)  
Antiguo 26/01/2014, 11:08
 
Fecha de Ingreso: agosto-2008
Ubicación: Canarias, España - París, Francia
Mensajes: 105
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: Enviar opcion del select por php

Usa:
Código PHP:
Ver original
  1. var_dump($_POST);
Para ver que te está enviando mediante el método POST.
Saludos
  #3 (permalink)  
Antiguo 26/01/2014, 11:13
 
Fecha de Ingreso: enero-2014
Mensajes: 4
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Enviar opcion del select por php

Cita:
Iniciado por rutame Ver Mensaje
Usa:
Código PHP:
Ver original
  1. var_dump($_POST);
Para ver que te está enviando mediante el método POST.
Saludos
En que línea de código tengo que ponerlo?
  #4 (permalink)  
Antiguo 26/01/2014, 11:22
 
Fecha de Ingreso: agosto-2008
Ubicación: Canarias, España - París, Francia
Mensajes: 105
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: Enviar opcion del select por php

Donde recibes, es decir, en el fichero que tengas en el "action" del formulario.
  #5 (permalink)  
Antiguo 26/01/2014, 11:32
 
Fecha de Ingreso: enero-2014
Mensajes: 4
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Enviar opcion del select por php

Cita:
Iniciado por rutame Ver Mensaje
Donde recibes, es decir, en el fichero que tengas en el "action" del formulario.
Este es el fichero que tengo en el action
<?php

if(!empty($_POST['firstname']) AND
!empty($_POST['lastname']) AND
!empty($_POST['useremail']) AND
!empty($_POST['usermessage'])){

$to ="[email protected]";
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From:".$_POST['firstname']."\r\n";
$tema="Contact from website";
$mensaje="
<table border='0' cellspacing='2' cellpadding='2'>

<tr>
<td width='20%' align='center' bgcolor='#FFFFCC'><strong>Firstname:</strong></td>
<td width='80%' align='left'>$_POST[firstname]</td>
</tr>
<tr>
<td width='20%' align='center' bgcolor='#FFFFCC'><strong>Lastname:</strong></td>
<td width='80%' align='left'>$_POST[lastname]</td>
</tr>
<tr>
<td width='20%' align='center' bgcolor='#FFFFCC'><strong>Email:</strong></td>
<td width='80%' align='left'>$_POST[useremail]</td>
</tr>
<tr>
<td align='center' bgcolor='#FFFFCC'><strong>Departament:</strong></td>
<td align='left'>$_POST[mi_select]</td>

</tr>

<tr>
<td align='center' bgcolor='#FFFFCC'><strong>Message:</strong></td>
<td align='left'>$_POST[usermessage]</td>

</tr>

</table>
";
@mail($to,$tema,$mensaje,$headers);
echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=../contact-send.html'>";
} else {
echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=../contact-error.html'>";
}



?>


Lo he colocado en varios lugares pero no me aparece nada diferente.

Última edición por inesmchaparro00; 26/01/2014 a las 11:46
  #6 (permalink)  
Antiguo 26/01/2014, 12:38
 
Fecha de Ingreso: enero-2014
Mensajes: 4
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Enviar opcion del select por php

Ya he solucionado el problema.
He cambiado esta línea de código:
Código PHP:
Ver original
  1. <td align='left'>$_POST[mi_select]</td>
Por esta:
Código PHP:
Ver original
  1. <td align='left'>".$_POST['mi_select']."</td>
Y ha funcionado a la perfección.

Aporto la solución por si algún día le pudiera servir a alguien.

Un saludo y gracias.

Etiquetas: formulario, html, opcion, select
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 10:58.