Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde galera,
Tenho esse código em PHP, mas quando marco varias opções apenas uma é enviada por email. Como armazenar varias opções do Checkbox?
Desde já agradeço. :D
<?php
$nomeremetente = $_POST['nome'];
$multiplo = $_POST['multiplo'];
$multiplo2 = $_POST['multiplo2'];
$emailremetente = trim($_POST['email']);
$emaildestinatario = 'teste@teste.com.br'; // Digite seu e-mail aqui, lembrando que o e-mail deve estar em seu servidor web
$telefone = $_POST['telefone'];
$mensagemHTML = '<strong>Formulário de Contato</strong>
<p><b>Nome:</b> '.$nomeremetente.'</p>
<p><b>multiplos checkbox:</b> '.$multiplo.'</p>
<p><b>multiplos checkbox2:</b> '.$multiplo2.'</p>
<hr>
<p><b>E-Mail:</b> '.$emailremetente.'
<p><b>Telefone:</b> '.$telefone.'
';
// O remetente deve ser um e-mail do seu domínio conforme determina a RFC 822.
// O return-path deve ser ser o mesmo e-mail do remetente.
$headers = "MIME-Version: 1.1\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";$envio = mail($emaildestinatario, $assunto, $mensagemHTML, $headers);
if($envio)
echo "<script>location.href='sucesso.html'</script>"; // Página que será redirecionada
?>
<form action="envia.php" name="envia" id="envia" method="post">
<div>
<input type="checkbox" name="multiplo" value="01"> 01<br>
<input type="checkbox" name="multiplo" value="02"> 02<br>
<input type="checkbox" name="multiplo" value="03"> 03<br>
<input type="checkbox" name="multiplo" value="04"> 04
</div>
<div>
<input type="checkbox" name="multiplo2" value="01"> 01<br>
<input type="checkbox" name="multiplo2" value="02"> 02<br>
<input type="checkbox" name="multiplo2" value="03"> 03<br>
<input type="checkbox" name="multiplo2" value="04"> 04
</div>
</form>Entendi, mas como mostrar o resultado dentro de $mensagemHTML? Fiz o teste sem colocar [ ] no PHP chegou no email escrito Array apenas ao invés das opções.
você precisa inserir a posição do array que você deseja imprimir.
Opa, tudo bem?
Acabei resolvendo usando:
$multiplo .= implode(' - ',$_POST["multiplo"]);
Mas aprendi que também posso usar:
foreach($_POST["multiplo"] as $multiplo)
{
$mensagem .= " - ". $multiplo." \n";
}
No caso, qual a diferença entre um e outro?
A primeira é uma função de concatenação, também conhecida como join.
Já a segunda, é uma estrutura de controle, que tem por objetivo iterar sobre todos os elementos do array. A cada iteração, o elemento é concatenado a uma string.
O atributo "name" deve ser formatado com um sintaxe de "array":
name="multiplo[]"
name="multiplo2[]"
Assim, o $_POST virá na forma de array também.