Jump to content

Archived

This topic is now archived and is closed to further replies.

F-gos

[Resolvido] Enviar array por email (formulario)

Recommended Posts

Pessoal bom dia!

 

Preciso montar um formulario de pedidos onde a pessoa digita o nome do produto e quantidade e envia por email.. os campos produto e quantidade precisa ser um array.

 

Mas não sei como fazer para enviar o formulario por e-mail... estou utilizando como base esse tutorial de array em formulario com checkbox.

 

 


<html>
<head>
   <title>Array en Forma :: PHP</title>
<head>
<body>
<br />
<b>Selecciona tus postres favoritos:</b><br /><br />
<form method="post" action="<?= $_SERVER['PHP_SELF'] ?>">
<input name="postre[]" type="checkbox" value="Helado de Vainilla">Helado de vanilla<br />
<input name="postre[]" type="checkbox" value="Pastel de Chocolate">Pastel de Chocolate<br />
<input name="postre[]" type="checkbox" value="Pay de elote">Pay de elote<br />
<input name="postre[]" type="checkbox" value="Bubulubu">Bubulubu<br />
<input name="postre[]" type="checkbox" value="Duraznos en almibar">Duraznos en almibar<br />
<input name="postre[]" type="checkbox" value="Fresas con crema">Fresas con crema<br />
<input name="send" type="submit" id="send" value="Enviar!">
</form>

<?php
if (isset($_POST['postre']))
{
  $postre = $_POST['postre'];
  $n        = count($postre);
  $i        = 0;

  echo "Tus postres favoritos son: \n" .
       "<ol>";
  while ($i < $n)
  {
     echo "<li>{$postre[$i]}</li> \n";
     $i++;
  }
  echo "</ol>";
}
?>

 

 

 

 

e o metodo que utilizo para enviar as mensagens de formulario por email é:

 

pego as variaveis por $_post:

 

$mensagem .= "Assunto = $assunto .\n\n";

$mensagem .= "Nome = $nome \n";

$mensagem .= "E-mail = $email \n";

$mensagem .= "Endereço = $endereco .\n";

mail($destinatario, $subject, $mensagem, $headers);

 

 

monto a mensagem e envio com a função mail.

 

 

alguem pode dar uma força e me explicar como fazer o envio do array?

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

eu recomendaria o uso do foreach p/ percorrer o array, assim:

<?php
if (isset($_POST['postre'])) {
  foreach($_POST['postre'] as $val) {
     $opcoes .= $val."<br/>";
  }
}
?>

e aí bastaria fazer assim:

$mensagem .= "Assunto = $assunto .\n\n";
$mensagem .= "Nome = $nome \n";
$mensagem .= "E-mail = $email \n";
$mensagem .= "Endereço = $endereco .\n";
$mensagem .= "Opções = ".$opcoes."\n";
mail($destinatario, $subject, $mensagem, $headers);

 

Não sei se é bem isso que você quer, mas foi isso que eu entendi da sua pergunta.

 

espero ter ajudado :-)

Share this post


Link to post
Share on other sites

então oq eu preciso é receber os dados do formulario no e-mail dessa forma:

 

 

1. nome produto - quantidade

2. nome produto - quantidade

3. nome produto - quantidade

4. nome produto - quantidade

 

 

 

vou fazer os testes aqui e qualquer coisa volto a postar. Obrigado pela força.

Share this post


Link to post
Share on other sites

MrZer0 fiz um teste utilizando $_request e funcionou da uma olhada no codigo:

 


<?php 
$cont = 0;
$cond = true;while ($cond){     
$msg .= $_REQUEST['codigo'][$cont] . " | ";
$msg .= $_REQUEST['descricao'][$cont] . " | ";
$msg .= $_REQUEST['quant'][$cont] . " | ";
$msg .= $_REQUEST['valor'][$cont] . "<br/>";


if (!($_REQUEST['codigo'][$cont + 1])) {        
 $cond = false;    

}    

 $cont++; 
}

$mensagem .= "FORMULARIO DE PEDIDO"."<br/>";  
$mensagem .= "Texto sobre o cliente" . "<br/><br/>";  
$mensagem .= "ITENS DO PEDIDO"."|" ."<br/>";  
$mensagem .= "<strong>"."Codigo  |  Descricao  |  Quant. | Valor "."</strong>"."<br/>";  
$mensagem .= "$msg";

$email =[email="email@email.com.br"]email@email.com.br[/email]; 
$destinatario = "[email="email@email.com.br"]email@email.com.br[/email]";
$formato = "\nContent-type: text/html\n";

mail("$destinatario", "Pedido enviado pelo site", "$mensagem", "from: " . $email . $formato); 
echo "<script language='javascript'>
  window.alert('Mensagem enviada com sucesso.');
  window.location = 'index.php';
 </script>";

?>

 

os campos do formulario estou utilizando um js para inserir e excluir dinamicamente.

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "[url="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"]http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd[/url]">
<html xmlns="[url="http://www.w3.org/1999/xhtml"]http://www.w3.org/1999/xhtml[/url]" xml:lang="en">    
<head>        
<meta http-equiv="content-type" content="text/html; charset=utf-8" />        
<script type="text/javascript" src="jquery.min.js">
</script>        
<script type="text/javascript" src="funcoes_2.js">
</script>    
</head>     
<body>        
<form action="enviar_2.php" method="post">            
<div class="dados">                
    <p class="campoDados">
      <input name="codigo[]" type="text" size="20" id="codigo[]" />                    
       <input name="descricao[]" type="text" size="50" id="descricao[]" />
     <input name="quant[]" type="text" size="20" id="quant[]" />
       <input name="valor[]" type="text" size="20" id="valor[]" />                    
       <a href="#" class="removerCampos">Remover Campos</a>        </div>
    <p> <a href="#" class="adicionarCampos">Adicionar campos</a></p>
    <input type="submit" value="enviar">        
</form>    
</body>
</html>

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.