Mostrar en el post enviado al correo, la opción escogida del select

Iniciado por Juanma91, 21 Noviembre 2014, 15:51 PM

0 Miembros y 1 Visitante están viendo este tema.

Juanma91

Código (php) [Seleccionar]
<?php 
function form_mail($sPara$sAsunto,$sTexto$sDe)

$bHayFicheros 0
$sCabeceraTexto ""
$sAdjuntos "";
$design=$_POST["design"];
foreach (
$_POST["design"] as $idioma){
$msg.= $idioma." - ";
}

if (
$sDe)$sCabeceras "From:".$sDe."\n"
else 
$sCabeceras ""
$sCabeceras .= "MIME-version: 1.0\n"
foreach (
$_POST as $sNombre => $sValor
$sTexto $sTexto."\n".$sNombre." = ".$sValor;

foreach (
$_FILES as $vAdjunto)

if (
$bHayFicheros == 0)

$bHayFicheros 1
$sCabeceras .= "Content-type: multipart/mixed;"
$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";

$sCabeceraTexto "----_Separador-de-mensajes_--\n"
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n"
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";

$sTexto $sCabeceraTexto.$sTexto

if (
$vAdjunto["size"] > 0)

$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n"
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";; 
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n"
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";

$oFichero fopen($vAdjunto["tmp_name"], 'r'); 
$sContenido fread($oFicherofilesize($vAdjunto["tmp_name"])); 
$sAdjuntos .= chunk_split(base64_encode($sContenido)); 
fclose($oFichero); 

}

if (
$bHayFicheros
$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n"
return(
mail($sPara$sAsunto$sTexto$sCabeceras)); 
}

//cambiar aqui el email 
if (form_mail("ghfjhfgj@ngkjhg.com"$_POST[mail], 
"Los datos introducidos en el formulario son:\n\n"$_POST[email])) 
echo 
"Su formulario ha sido enviado con exito"
?>


como conseguir que al pulsar un select determinado, al enviar el mensaje te muestre esa opción..Gracias

engel lex

si el select está dentro del form, el valor del select es el escogido y ese se envía en el form de manera normal, lo que no entiendo es que tiene que ver tu codigo con la pregunta :s


procura usar etiquetas GeSHi para publicar el código, así es más fácil de verlo
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Juanma91

no porque al enviarlo el form, me muestra el design= Array, estuve investigando y necesito sacar de ese array el valor correspondiente, pero no sé hacerlo, de tal manera que por ejemplo si clickeo "Hola" , que luego en el correo enviado me muestre hola, y no Array

T. Collins

Igual es porque $_POST[mail] y $_POST[email] está mal, debería ser $_POST["mail"] y $_POST["email"]

Juanma91

lo corregí como dices y nada de nada. Alguna solución amigos?

T. Collins

Si puedes poner el html con el select igual te podemos ayudar mejor.

Juanma91

Código (php) [Seleccionar]
<form name='formulario' id='formulario' method='post' action='enviar.php' target='_self' enctype="multipart/form-data">
<p>Nombre <input type='text' name='Nombre' id='Nombre'></p>
<p>E-mail  
<input type='text' name='email' id='email'>
</p>
<p>Asunto    
<input type='text' name='asunto' id='asunto' />
</p>
Diseño   <select name="design[]">    

      <option value="tarjeta_horizontal" selected="selected">Tarjeta visita horizontal brillo </option>
<option value="ae">e </option>
<option value="bf">x </option>
<option value="ce">ce</option>
<option value="de">de</option>
<option value="re">rel</option>
      <option value="a">a</option>
      <option value="b">b</option>
      <option value="c">c</option>
      <option value="d">d</option>
      <option value="e">e</option>
      <option value="f">f</option>
      <option value="g">g</option>
      <option value="h">h</option>
     <option value="x">xxx</option>
  </select>
<p>Mensaje
<textarea name="mensaje" cols="50" rows="10" id="mensaje"></textarea>
</p>
<p>Adjuntar archivo: <input type='file' name='archivo1' id='archivo1'></p>
<p>
<input type='submit' value='Enviar'>
</p>
</form>

T. Collins

#7
Si te fijas, en el php guardas los valores del array $_POST["design"] en la variable $msg

Código (php) [Seleccionar]
foreach ($_POST["design"] as $idioma){
$msg.= $idioma." - ";
}


pero la variable $msg no la vuelves a utilizar en todo el php, sin embargo, introduces el valor de $_POST["design"] en $sTexto de la siguiente forma:

Código (php) [Seleccionar]
foreach ($_POST as $sNombre => $sValor)
       $sTexto = $sTexto."\n".$sNombre." = ".$sValor;


y como $_POST["design"] no es un valor si no un array, en el email te muestra Array

Tendrías que juntar $msg a $sTexto

Juanma91

Intento igualarlo como me comentas, pero conseguí que me apareciera

a-a-a-a  ( el valor de la opcion a ) y luego cosas raras,

¿ No hay ninguna forma de conseguir el mismo formato en el email pero el design= al valor que quiero que aparezca segun haya seleccionado yo ?