Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: Juanma91 en 21 Noviembre 2014, 15:51 PM

Título: Mostrar en el post enviado al correo, la opción escogida del select
Publicado por: Juanma91 en 21 Noviembre 2014, 15:51 PM
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
Título: Re: mandar form con un select y mostrar en el mensaje enviado el select escogido
Publicado por: engel lex en 21 Noviembre 2014, 15:58 PM
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
Título: Re: mandar form con un select y mostrar en el mensaje enviado el select escogido
Publicado por: Juanma91 en 21 Noviembre 2014, 16:35 PM
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ítulo: Re: mandar form con un select y mostrar en el mensaje enviado el select escogido
Publicado por: T. Collins en 21 Noviembre 2014, 16:46 PM
Igual es porque $_POST[mail] y $_POST[email] está mal, debería ser $_POST["mail"] y $_POST["email"]
Título: Re: Mostrar en el post enviado al correo, la opción escogida del select
Publicado por: Juanma91 en 21 Noviembre 2014, 17:00 PM
lo corregí como dices y nada de nada. Alguna solución amigos?
Título: Re: Mostrar en el post enviado al correo, la opción escogida del select
Publicado por: T. Collins en 21 Noviembre 2014, 17:29 PM
Si puedes poner el html con el select igual te podemos ayudar mejor.
Título: Re: Mostrar en el post enviado al correo, la opción escogida del select
Publicado por: Juanma91 en 22 Noviembre 2014, 15:56 PM
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ítulo: Re: Mostrar en el post enviado al correo, la opción escogida del select
Publicado por: T. Collins en 22 Noviembre 2014, 16:24 PM
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
Título: Re: Mostrar en el post enviado al correo, la opción escogida del select
Publicado por: Juanma91 en 23 Noviembre 2014, 03:33 AM
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 ?