Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida: Checkboxes em formulário HTML enviado com mail()


iuriau

Pergunta

Boa tarde galera!

Primeira postagem aqui no fórum, na intenção de sanar uma dúvida.

Pesquisei bastante no Google e não encontrei nenhum artigo em PT ou EN que resolvesse meu problema, então decidi perguntar por aqui.

Tenho um formulário em HTML que usa um arquivo PHP para enviar as respostas via e-mail. Tudo está funcionando perfeitamente, porém as checkboxes não estão me dando um resultado satisfatório.

Quando recebo o e-mail, todas as checkboxes que foram marcadas aparecem com o nome do value declarado (como não declarei alguns, aparece escrito "checkbox" mesmo), e para as que não foram marcadas, não aparece nada.

Gostaria de saber se existe algum de fazer aparecer uma imagem diferente para cada situação (marcada ou não). No caso, o que eu gostaria de colocar era um pequeno print de um checkbox selecionado, para os marcados, e um vazio para os que não forem marcados. Alguém pode me ajudar?

Se a marcação for assim:

imagem1.jpg

O e-mail está chegando assim:

imagem2.jpg

E eu quero que chegue assim:

imagem3.jpg

Não tem nenhum grande segredo no meu código,

Formulário HTML:

<td colspan="2">Necessidades: </td>
      </tr>
      <tr>
        <td colspan="2"><input name="inscricao" type="checkbox" id="inscricao" value="checkbox">
         Taxa de Inscrição: R$
<input name="valR" type="text" id="valR"></td>
      </tr>
      <tr>
        <td width="225"><input name="caro" type="checkbox" id="caro" value="checkbox"> 
        Carro da Empresa </td>
        <td width="456"> <input name="passagem" type="checkbox" id="passagem" value="checkbox"> 
          Passagem (ônibus / avião) </td>
      </tr>
      <tr>
        <td colspan="2"><input name="hospedagem" type="checkbox" id="hospedagem" value="checkbox"> 
          Hospedagem (
          <input name="diarias" type="text" id="diarias" size="5"> 
          diárias)  </td>
      </tr>
      <tr>
        <td colspan="2"><input name="alimentacao" type="checkbox" id="alimentacao" value="checkbox">
        Alimentação</td>
      </tr>
      <tr>
        <td colspan="2"><input name="adiantamento" type="checkbox" id="adiantamento" value="checkbox"> 
        Adiantamento de valores: R$ 
          <input name="val_adianta" type="text" id="val_adianta"></td>
      </tr>
    </table>
No arquivo PHP:
<tr class=style1>
        <td colspan=2><strong>Necessidades: </strong></td>
      </tr>
      <tr class=style1>
        <td colspan=2>Taxa de Inscri&ccedil;&atilde;o: $inscricao R$ $valR</td>
      </tr>
      <tr class=style1>
        <td width=225>$caro 
        Carro da Empresa </td>
        <td width=456> $passagem 
          Passagem (ônibus / avião) </td>
      </tr>
      <tr class=style1>
        <td colspan=2>$hospedagem 
          Hospedagem (
            $diarias 
          diárias)  </td>
      </tr>
      <tr class=style1>
        <td colspan=2>$alimentacao
        Alimentação</td>
      </tr>
      <tr class=style1>
        <td colspan=2>$adiantamento 
        Adiantamento de valores: R$ 
          $val_adianta</td>
      </tr>
</table>

E aí, alguém tem uma sugestão ótima? Não conheço muito de PHP, estou na base do fuçômetro mesmo x.x

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Vou só exemplificar para o primeiro checkbox. Aplique para os demais também

Coloque isto antes de toda a tabela:

if ($inscricao == 'checkbox') $inscricao_ck = 'checked="checked"';
else $inscricao_ck = '';
Modifique a tabela
<tr class=style1>
    <td colspan=2><input type="checkbox" $inscricao_ck>Taxa de Inscri&ccedil;&atilde;o: R$ $valR</td>
</tr>

Link para o comentário
Compartilhar em outros sites

  • 0
Vou só exemplificar para o primeiro checkbox. Aplique para os demais também

Coloque isto antes de toda a tabela:

if ($inscricao == 'checkbox') $inscricao_ck = 'checked="checked"';
else $inscricao_ck = '';
Modifique a tabela
<tr class=style1>
    <td colspan=2><input type="checkbox" $inscricao_ck>Taxa de Inscri&ccedil;&atilde;o: R$ $valR</td>
</tr>

Eu gostei da ideia, mas não consegui aplicar, talvez por não conhecer direito a estrutura da linguagem, fica dando erro e não envia o formulário. Então vou fazer umas perguntas bem noobs pra ter respostas básicas:

Essa $inscricao_ok é uma variável (ou coisa do gênero)? Precisa ser declarada no inicio do código junto com as outras $coisas que tem por lá?

Esse if vai antes da tabela, dentro do $message ou fora dele? --- a tabela está dentro do $message.

Link para o comentário
Compartilhar em outros sites

  • 0
Vou só exemplificar para o primeiro checkbox. Aplique para os demais também

Coloque isto antes de toda a tabela:

if ($inscricao == 'checkbox') $inscricao_ck = 'checked="checked"';
else $inscricao_ck = '';
Modifique a tabela
<tr class=style1>
    <td colspan=2><input type="checkbox" $inscricao_ck>Taxa de Inscri&ccedil;&atilde;o: R$ $valR</td>
</tr>

Eu gostei da ideia, mas não consegui aplicar, talvez por não conhecer direito a estrutura da linguagem, fica dando erro e não envia o formulário. Então vou fazer umas perguntas bem noobs pra ter respostas básicas:

Essa $inscricao_ok é uma variável (ou coisa do gênero)? Precisa ser declarada no inicio do código junto com as outras $coisas que tem por lá?

Esse if vai antes da tabela, dentro do $message ou fora dele? --- a tabela está dentro do $message.

Consegui aplicar aqui agora, entendi onde estava o meu erro.

Não sei se é uma condição da função mail(), mas ele não me mostra o "desenho" do checkbox, apenas um [ ] se ele for vazio e [x] se for cheio. Mas desse jeito já está perfeito dentro do que eu queria.

Então, MUITO obrigado Massaki! Salvou o dia!!!

Só acrescentando: o [x] é uma condição do outlook, porque pelo webmail da empresa abre com o checkbox certinho. PERFEITO!!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...