Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tesdey

[Resolvido] FormMail - CheckBox de multipla escolha junto com sua

Recommended Posts

Olá novamente galera,

 

Tenho um formulário para formMail em meu site que contem multiplos checkbox junto com sua devida descrição ao seu lado.

Eu gostaria de receber em meu e-mail, todos os check box selecionados pelo usuário, junto com sua descrição ao lado.

Atualmente em meu formulário, eu só recebo o "name" do ultimo checkbox selecionado, e não recebo sua descrição.

 

Como sou lezado em php ainda, estou encontrando grandes dificuldades para resolver este problema, alguem poderia me ajudar a resolver este problema?

 

Obrigado desde já.

 

 

Código do formulário no html

<tr> 
                          <td class="estilo_site_parcus">Como conheceu a Parcus?</td>
                        
                        
                        <td width="80%"> 
                        
                        
                        <table width="100%" border="0"  cellspacing="2" cellpadding="2">
                              <tr> 
                                <td width="34%" align="left">  
                                    <input type="checkbox" name="sitebox" value="Revistas"/>
                                <span class="estilo_site_parcus_sem_espaco">Revistas</span></td>
                                <td width="11%" class="estilo_site_parcus_sem_espaco">Quais?</td>
                                <td width="55%"> <input type="text" name="Qual revista" size="35" maxlength="50"/> 
                                </td>
                              </tr>
                              <tr> 
                                <td align="left"> 
                                    <input type="checkbox" name="sitebox" value="Representante"/>
                                <span class="estilo_site_parcus_sem_espaco">Representante</span></td>
                                <td class="estilo_site_parcus_sem_espaco">Qual?</td>
                                <td> <input type="text" name="Qual representante" size="35" maxlength="50"/>  
                                </td>
                              </tr>
                              <tr> 
                                <td align="left">  
                                    <input type="checkbox" name="sitebox" value="Indicação de cliente"/>
                                    <span class="estilo_site_parcus_sem_espaco">Indicação 
                                de Cliente</span></td>
                                <td class="estilo_site_parcus_sem_espaco"> Qual?</td>
                                <td> <input type="text" name="Qual cliente" size="35" maxlength="50"/> 
                                </td>
                              </tr>
                              <tr> 
                                <td align="left"> 
                                    <input type="checkbox" name="sitebox" value="Outros"/>
                                <span class="estilo_site_parcus_sem_espaco">Outros</span></td>
                                <td> </td>
                                <td> </td>
                              </tr>
                          </table>
                          
                          
                          </td>

 

código do php


<?
$nome      = utf8_decode($_POST["nome"]);
$empresa     = utf8_decode($_POST["empresa"]);
$email   = utf8_decode($_POST["email"]);
$Telefone  = utf8_decode($_POST["Telefone"]);
$Cidade  = utf8_decode($_POST["Cidade"]);
$Estado  = utf8_decode($_POST["Estado"]);
$Pais  = utf8_decode($_POST["Pais"]);
$sitebox   = utf8_decode($_POST["sitebox"]);
$assunto   = utf8_decode($_POST["assunto"]);
$mensagem  = utf8_decode($_POST["mensagem"]);




global $email; 

$data      = utf8_decode(date("d/m/y"));                     
$ip        = utf8_decode($_SERVER['REMOTE_ADDR']);          
$navegador = utf8_decode($_SERVER['HTTP_USER_AGENT']);       
$hora      = utf8_decode(date("H:i"));                       


mail ("felipe@parcus.com.br", 
      "$assunto",
      " \n 
	   Nome: $nome \n  
	   Data: $data \n
	   Ip: $ip \n
	   Navegador: $navegador \n
	   Hora: $hora \n
	   Empresa: $empresa \n
	   E-mail: $email \n
	   Telefone: $Telefone \n
	   Cidade: $Cidade \n
	   Estado: $Estado \n
	   País: $Pais \n
	   Como conheceu a Parcus: $sitebox \n
	   Mensagem: $mensagem \n",
      "From: $nome"
     );

//aqui são as configurações para enviar o e-mail para o visitante
$site   = "felipe@parcus.com.br";                    //o e-mail que aparecerá na caixa postal do visitante
$titulo = "A Parcus agradece";                  //titulo da mensagem enviada para o visitante
$msg    = "$nome, obrigado por entrar em contato conosco, em breve entraremos em contato.";

//aqui envia o e-mail de auto-resposta para o visitante
mail("$email",
     "$titulo",
     "$msg",
     "From: $site"
    );
?>	

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, seu problema é o seguinte: você está colocando o mesmo name em todos os "checkbox", ou seja ele entenderia como um array.

Se você quer passar um array coloque o name da seguinte forma: "sitebox[]", aí na página que receberá os dados você monta um laço para "desmontar" esse array:

	$check = $_POST['sitebox'];
	for($i = 0; $i<count($check); $i++) {
		if($check[$i] != "") {
			echo $check[$i];
		}
	}

Agora, de uma forma mais simples, pois vejo que é um número limitado de checkbox, você pode colocar um nome específico para cada um e receber individualmente:

 

    $check1 = $_POST['sitebox1'];
    $check2 = $_POST['sitebox2'];
    $check3 = $_POST['sitebox3'];

A vantagem é que, com o array, você pode passar um número indeterminado de checkbox.

 

At+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então amigo...

 

Seu código está bastante poluido, e acho que você o pegou pronto, caso não, me desculpe.

Pois bem, vamos lá...

 

Então, acho que está tendo algum problema em passar o valor do "VALUE" do checkbox.

 

Coloca ai pra gente, como está o seu <form>!

 

Até logo mais!

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Quelipe, fiz do jeito que você mandou usando Array, o name a ser modificado é o do checkbox correto?

Se sim, eu testei isto e oq eu recebo no meu e-mail nos valores do checkbox agora é "Array" ahahahhaha

Eu poderia trabalhar na forma mais simples q você passou tambem, mas ai faltaria a especificação "text" ao lado do check box

 

Exemplificando oq eu desejo receber no meu e-mail:

Conheceu a Parcus:

Revistas: RTI, VEJA

Indicação: João

 

E os outros checkbox q n aparecem neste exemplo, são aqueles q n foram selecionados

 

Já agradeço pela ajuda

 

@Marcus_du, O código da página php eu peguei pronto, já a página html q tem o formulário sou eu q estou fazendo atráves de fireworks/dreamweaver, e como é meu primeiro site, é bem provavel q ele esteja poluido mesmo hehehe

Segue o código do formulário completo com o form logo no começo:

<td colspan="7"> <form action="index.php?link=29" method="POST">
                                <input type="hidden">
                      
                      
                      <table width="754" border="0" cellspacing="2" cellpadding="2">
                         <tr> 
                         <td width="20%" class="estilo_site_parcus">Assunto:</td>
                          <td  width="80%" valign="middle">
                          

  <label for="assunto"></label>

  <select name="assunto" id="assunto">
  <option>Escolha aqui o assunto</option>
    <option value="Distribuição">Distribuição</option>
  <option value="Certificação Parcus">Certificação Parcus</option>
  <option value="Currículo">Currículo</option>
  <option value="Dúvida">Dúvida</option>
  	<option value="Crítica | Sugestão">Crítica | Sugestão</option>
  <option value="WebMaster">WebMaster</option>
  </select>



                           </td>
                        </tr>      
                        <tr> 
                          <td width="20%" class="estilo_site_parcus">Nome:</td>
                          <td>  
                            <input type="text" name="nome" size="80" maxlength="100"/>
                           </td>
                        </tr>
                        <tr> 
                          <td class="estilo_site_parcus"> Empresa:</td>
                          <td>
                            <input type="text" name="empresa" size="80" maxlength="100"/>
                            </td>
                        </tr>
                        <tr> 
                          <td class="estilo_site_parcus">E-mail:</td>
                          <td>
                            <input type="text" name="email" size="80" maxlength="100"/>
                            </td>
                        </tr>
                        <tr> 
                          <td height="23" class="estilo_site_parcus">Telefones:</td>
                          <td>
                            <input type="text" name="Telefone" size="80" maxlength="100"/>
                        </td>
                        </tr>
                        <tr> 
                          <td class="estilo_site_parcus">Cidade:</td>
                          <td>
                            <input type="text" name="Cidade" size="80" maxlength="100"/>
                            </td>
                        </tr>
                        <tr> 
                          <td class="estilo_site_parcus">Estado:</td>
                          <td>
                            <input type="text" name="Estado" size="30" maxlength="100"/>
                          </td>
                        </tr>
                        <tr> 
                          <td class="estilo_site_parcus">País:</td>
                          <td>
                            <input type="text" name="Pais" size="30" maxlength="100"/>
                           </td>
                        </tr>
                        <tr> 
                          <td class="estilo_site_parcus">Como conheceu a Parcus?</td>
                        
                        
                        <td width="80%"> 
                        
                        
                        <table width="100%" border="0"  cellspacing="2" cellpadding="2">
                              <tr> 
                                <td width="34%" align="left">  
                                    <input type="checkbox" name="sitebox[]" value="Revistas"/>
                                <span class="estilo_site_parcus_sem_espaco">Revistas</span></td>
                                <td width="11%" class="estilo_site_parcus_sem_espaco">Quais?</td>
                                <td width="55%"> <input type="text" name="Qual revista" size="35" maxlength="50"/> 
                                </td>
                              </tr>
                              <tr> 
                                <td align="left"> 
                                    <input type="checkbox" name="sitebox[]" value="Representante"/>
                                <span class="estilo_site_parcus_sem_espaco">Representante</span></td>
                                <td class="estilo_site_parcus_sem_espaco">Qual?</td>
                                <td> <input type="text" name="Qual representante" size="35" maxlength="50"/>  
                                </td>
                              </tr>
                              <tr> 
                                <td align="left">  
                                    <input type="checkbox" name="sitebox[]" value="Indicação de cliente"/>
                                    <span class="estilo_site_parcus_sem_espaco">Indicação 
                                de Cliente</span></td>
                                <td class="estilo_site_parcus_sem_espaco"> Qual?</td>
                                <td> <input type="text" name="Qual cliente" size="35" maxlength="50"/> 
                                </td>
                              </tr>
                              <tr> 
                                <td align="left"> 
                                    <input type="checkbox" name="sitebox[]" value="Outros"/>
                                <span class="estilo_site_parcus_sem_espaco">Outros</span></td>
                                <td> </td>
                                <td> </td>
                              </tr>
                          </table>
                          
                          
                          </td>
                          
                          
                        <tr> 
                          <td colspan="7" class="estilo_site_parcus"><strong>Faça aqui seus comentários:</strong></td>
                        </tr>
                        <tr> 
                          <td height="124" colspan="2" valign="top"> <div align="left">
                              <textarea name="mensagem" cols="85" rows="7" class="bot" ></textarea>
                            </div></td>
                        </tr>
                        <tr> 
                          <td height="26" colspan="2"> <div align="center"> 
                              <input name="Submit" type="submit" value="Enviar"/>
                                        
                              <input name="Submit2" type="reset" value="Limpar"/>
                            </div></td>
                        </tr>
                      </table>
                    </form>
                    </td>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<input type="checkbox" name="sitebox1" value="Revistas"/>
<input type="checkbox" name="sitebox2" value="Representante"/>
<input type="checkbox" name="sitebox3" value="Indicação de cliente"/>
<input type="checkbox" name="sitebox4" value="Outros"/>
Esses aí em cima são seus checkbox, de um jeito bem simples você verifica assim:

 

$sitebox = "";
if($_POST["sitebox1"] != "") {
	$sitebox .= utf8_decode($_POST["sitebox1"]);
}
if($_POST["sitebox2"]!= "") {
	$sitebox .= utf8_decode($_POST["sitebox2"]);
}
if($_POST["sitebox3"] != "") {
	$sitebox .= utf8_decode($_POST["sitebox3"]);
}
if($_POST["sitebox4"] != "") {
	$sitebox .= utf8_decode($_POST["sitebox4"]);
}

echo $sitebox;

At+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, já houve um progresso!

Agora eu estou recebendo todos checkbox q foram selecionados.

 

Porem, eu estou recebendo todas informações acopladas sem espaço entre elas, ex:"Como conheceu a Parcus: RevistasRepresentanteIndicação de clienteOutros"

E segundo e mais importante, eu ainda não estou recebendo as informações dos campos "text" do checkbox selecionado, relembrando o exemplo q eu passei:

 

Como conheceu a Parcus:

Revistas: RTI, VEJA

Representantes: Maria Joana

Indicação: João

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então é isso que você precisa:

if($_POST["sitebox1"] != "") {
	$qual_revista = utf8_decode($_POST["Qual revista"]); // lembrando que o name do seu campo está com espaço, que pode te trazer problemas
}

agora é só repetir nos outros campos

 

At+

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

if( $_SERVER['REQUEST_METHOD']=='POST' )

{

foreach( $_POST['qual'] AS $quais )

if( !empty($quais) )

$qual[] = $quais;

 

$arr = Array();

for( $i=0; $i<count($qual); $i++ )

{

if( !empty( $_POST['como_conheceu'][$i] ) )

{

$arr[] = '<strong>'.$_POST['como_conheceu'][$i].'</strong>: '.$qual[$i];

}

}

echo implode( ',<br />', $arr );

}

?>

<html>

<head>

 

</head>

<body>

 

<form action="" method="post">

<fieldset>

<label><input type="checkbox" name="como_conheceu[]" value="Revistas" />Revistas </label>

<label>Quais? <input type="text" name="qual[]" size="35" maxlength="50" /></label>

 

<br />

<label><input type="checkbox" name="como_conheceu[]" value="Representante" />Representante </label>

<label>Qual? <input type="text" name="qual[]" size="35" maxlength="50" /></label>

 

<br />

<label><input type="checkbox" name="como_conheceu[]" value="Indicação de cliente" />Indicação de Cliente</label>

<label>Qual? <input type="text" name="qual[]" size="35" maxlength="50"/></label>

 

<br />

<label><input type="checkbox" name="como_conheceu[]" value="Outros" />Outros </label>

<label>Qualis? <input type="text" name="qual[]" size="35" maxlength="50"/></label>

 

<label><input type="submit" name="enviar" value="Enviar" /></label>

</fieldset>

</form>

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Quelipe, este comando não funcionou, mas obrigado de qualquer forma

 

@Willian, funcionou quase perfeitamente,

As informações estão sendo exposta no "echo implode" perfeitamente, mas n estou conseguindo descobrir qual variável $ eu devo colocar no comando "mail", eu tentei usar $arr, mas ai eu recebo apenas "Array" no meu e-mail!

Compartilhar este post


Link para o post
Compartilhar em outros sites

$como_conheceu = implode( ',<br />', $arr );

e ai você coloca a $como_conheceu Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na trave novamente! Agora estou recebendo todas informações, porem, eu estou recebendo todos os códigos tambem, ex:

Como conheceu a Parcus: <strong>Revistas</strong>: Veja<br /><strong>Representante</strong>: João<br /><strong>Indicação de cliente</strong>: Maria

Compartilhar este post


Link para o post
Compartilhar em outros sites

os códigos era pra deixar em negrito, ou você retira eles, ou envia o email em HTML:

 

mail("$email",
     "$titulo",
     "$msg",
     "From: $site"
    );
troque por:

 

 

$headers = "MIME-Version: 1.0\n";	
	$headers .= "Content-type: text/html; charset=iso-8859-1\n";
	$headers .= "From: {$site} \r\n";	
mail( $email, $titulo, $msg, $headers );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe-me, devo estar errando em algum ponto na programação, mas quando tento colocar os comandos que você me passou agora ele insinua erros no código e para de funcionar...

 

Olhe como esta meu código da página toda antes de seguir este seu ultimo passo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<title>Obrigado</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="Rodapé Falso, canaletas de PVC, PVC, cabeamento estruturado, cabeamento de rede, infra estrutura, caixas de piso, caixas de tomada, piso elevado, monolitico, filtro de linha, régua de tomadas, tomadas, canaletas, caixas de passagem, dutos de piso, design, design de produtos, infra estrutura para cabeamento estruturado." />
<meta name="description" content="Fabrica rodapé falso em PVC, canaletas, caixas de tomada p/ piso e acessórios p/ escritório. Diferenciais: design moderno, funcional, flexível, alta qualidade e acabamento, melhor custo / benefício, atendimento ágil e especializado. São Paulo - SP." />
<meta name="author" content="Felipe Leonel Guindo" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body topmargin="0" leftmargin="0"  bgcolor="#ffffff">

<table style="display: inline-table;" border="0" cellpadding="0" cellspacing="0" width="759">
<!-- fwtable fwsrc="Untitled" fwpage="Page 1" fwbase="Canaleta-Parcus-contato-parcus.jpg" fwstyle="Dreamweaver" fwdocid = "1860027131" fwnested="0" -->
  <tr>
   <td width="11"></td>
   <td width="36"></td>
   <td width="310"></td>
   <td width="139"></td>
   <td width="249"></td>
 
  
  </tr>

  <tr>
   <td colspan="6" height="153" valign="bottom"><img name="CanaletaParcuscontatoparcus_r1_c1" src="imagens/imagens/banner-contato.jpg" width="738" height="136" hspace="9" border="0" id="CanaletaParcuscontatoparcus_r1_c1" alt="" /></td>
  </tr>
 <tr>
   <td colspan="2"> </td>
   <td><img name="CanaletaParcuscontatoparcus_r2_c3" src="imagens/imagens/obrigado.jpg" width="300" height="47" border="0" id="CanaletaParcuscontatoparcus_r2_c3" alt="" /></td>
   <td colspan="3"> </td>
   <td><img src="imagens/imagens/spacer.gif" width="1" height="47" border="0" alt="" /></td>
  </tr>
           <td colspan="6" class="estilo_site_parcus_comrecuo"><p>Sua mensagem foi enviada com sucesso!
</p>
<p><a href="http://www.parcus.com.br">Voltar a página inicial</a></p>
    </td>
   <td><img src="imagens/imagens/spacer.gif" width="1" height="50" border="0" alt="" /></td>
  </tr>
 
              </table> 



<?



$nome      = utf8_decode($_POST["nome"]);
$empresa     = utf8_decode($_POST["empresa"]);
$email   = utf8_decode($_POST["email"]);
$Telefone  = utf8_decode($_POST["Telefone"]);
$Cidade  = utf8_decode($_POST["Cidade"]);
$Estado  = utf8_decode($_POST["Estado"]);
$Pais  = utf8_decode($_POST["Pais"]);

        if( $_SERVER['REQUEST_METHOD']=='POST' )
        {
                foreach( $_POST['qual'] AS $quais )
                        if( !empty($quais) )
                                $qual[] = $quais;
                                
                $arr = Array();
                for( $i=0; $i<count($qual); $i++ )
                {
                        if( !empty( $_POST['como_conheceu'][$i] ) )
                        {
                                $arr[] = '<strong>'.$_POST['como_conheceu'][$i].'</strong>: '.$qual[$i];        
                        }
                }
        }
		
$como_conheceu = utf8_decode(implode( '<br />', $arr ));	
$assunto   = utf8_decode($_POST["assunto"]);
$mensagem  = utf8_decode($_POST["mensagem"]);




global $email; 

$data      = utf8_decode(date("d/m/y"));                     
$ip        = utf8_decode($_SERVER['REMOTE_ADDR']);          
$navegador = utf8_decode($_SERVER['HTTP_USER_AGENT']);       
$hora      = utf8_decode(date("H:i"));                       


mail ("felipe@parcus.com.br", 
      "$assunto",
      " \n 
	   Nome: $nome \n  
	   Data: $data \n
	   Ip: $ip \n
	   Navegador: $navegador \n
	   Hora: $hora \n
	   Empresa: $empresa \n
	   E-mail: $email \n
	   Telefone: $Telefone \n
	   Cidade: $Cidade \n
	   Estado: $Estado \n
	   País: $Pais \n
	   Como conheceu a Parcus: $como_conheceu \n
	   Mensagem: $mensagem \n",
      "From: $nome"
	  
     );

//aqui são as configurações para enviar o e-mail para o visitante
$site   = "felipe@parcus.com.br";                    //o e-mail que aparecerá na caixa postal do visitante
$titulo = "A Parcus agradece";                  //titulo da mensagem enviada para o visitante
$msg    = "$nome, obrigado por entrar em contato conosco, em breve entraremos em contato.";

//aqui envia o e-mail de auto-resposta para o visitante
mail("$email",
     "$titulo",
     "$msg",
     "From: $site"
    );
?>	

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.