tesdey 0 Denunciar post Postado Julho 13, 2010 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
Quelipe 15 Denunciar post Postado Julho 13, 2010 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
marcus_du 1 Denunciar post Postado Julho 13, 2010 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
tesdey 0 Denunciar post Postado Julho 13, 2010 @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
Quelipe 15 Denunciar post Postado Julho 13, 2010 <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
tesdey 0 Denunciar post Postado Julho 13, 2010 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
Quelipe 15 Denunciar post Postado Julho 13, 2010 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
William Bruno 1501 Denunciar post Postado Julho 13, 2010 <?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
tesdey 0 Denunciar post Postado Julho 13, 2010 @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
William Bruno 1501 Denunciar post Postado Julho 13, 2010 $como_conheceu = implode( ',<br />', $arr ); e ai você coloca a $como_conheceu Compartilhar este post Link para o post Compartilhar em outros sites
tesdey 0 Denunciar post Postado Julho 13, 2010 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
William Bruno 1501 Denunciar post Postado Julho 13, 2010 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
tesdey 0 Denunciar post Postado Julho 13, 2010 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
tesdey 0 Denunciar post Postado Julho 14, 2010 Obrigado galera, finalmente consegui resolver o problema. Muito obrigado pela paciencia e ajuda de todos. Compartilhar este post Link para o post Compartilhar em outros sites