2010-06-30 20 views
0

Avoir un formulaire qui est envoyé avec des cases à cocher.Formulaire groupé PHP et certains ont des données supplémentaires

Certaines cases à cocher ont un champ facultatif pour entrer du texte. Comme "autre et plus d'informations"

Comment puis-je attacher les personnes de texte entrées à ces cases à cocher que cette option.

Ceci est un groupe.

<form action="sendemail.php" method="POST" name="Contact Form"> 
    <div><input type="checkbox" class="checkbox" name="check[]" value="Word of Mouth?">Word of Mouth?</div> 
    <div><input type="checkbox" class="checkbox" name="check[]" value="Have you seen our Sign? Where?">Have you seen our Sign? Where?<input type="text" style="float:right; width:150px;" name="sign" /></div> 
    <div><input type="checkbox" class="checkbox" name="check[]" value="Other.">Other. <input type="text" style="float:right; width:300px;" name="other" /></div> 
<p><input type="submit" value="Submit" name="submit"></p> 

Et mon sendmail.php est comme:

<?php 
if(isset($_POST['submit'])) { 

    $to = "[email protected]"; 
    $subject = "Contact Form"; 
    $firstname_field = $_POST['firstname']; 
    $lastname_field = $_POST['lastname']; 

    foreach($_POST['check'] as $value) { 
     $check_msg_0 .= " $value\n"; 
    } 

    $body = "From: $firstname_field $lastname_field\n Learned about us from: \n $check_msg_0\n \n "; 

    echo "Data has been submitted to $to!"; 
    mail($to, $subject, $body); 

} else { 
    echo "Nope didn't work!"; 
} 
?> 

MISE À JOUR - Ont essayé recommandation mais ne fonctionnait pas. Je ne peux pas obtenir la valeur et le champ de texte ensemble.

Essayé cela mais toujours pas de résultats.

<form action="sendemail.php" method="POST" name="Contact Form"> 
    <div><input type="checkbox" class="checkbox" name="check[]" value="Word of Mouth?">Word of Mouth?</div> 
    <div><input type="checkbox" class="checkbox" name="check[]" value="Other.">Other. <input type="text" style="float:right; width:300px;" name="otherwhere" /></div> 
<p><input type="submit" value="Submit" name="submit"></p> 

if (count($_POST['check']) > 0) { 
    foreach ($_POST['check'] as $value) { 
     if (isset($_POST['check']) && $_POST['check'] == 'Other') { 
      $check_msg_0 .= $value.": ".$_POST['otherwhere']."<br>"; 
     } 
     else { 
      $check_msg_0 .= $value."<br>"; 
     } 
    } 
} 

MISE À JOUR 2 - J'ai commencé à travailler. Changé mon nom textfield à « otherwhereTXT » et en procédant comme suit:

if (count($_POST['check']) > 0) { 
    foreach ($_POST['check'] as $value) { 
     if ($value == 'other') { 
     $check_msg_0 .= "Other: ".$_POST['otherwhereTXT']."<br>"; 
     } else { 
     $check_msg_0 .= $value."<br>"; 
     } 
    } 
} 

Répondre

0

Vous utiliseriez ...

$body = "From: $firstname_field $lastname_field\n Learned about us from: \n"; 

if (count($_POST['check'] > 0 { 
    foreach ($_POST['check'] as $value) { 
     $body .= $value."\n"; 
    } 
} 
if (strlen($_POST['other']) > 0) { 
    $body .= "\n\nOther: ".$_POST['other']; 
} 

Cette boucles montrent que par chacun de vos valeurs cochées (cases à cocher dans $ _POST si elles ont été vérifiées) et les ajoute au message du corps.

+0

mais comment joindre l'entrée comme dans "Autre" quand il envoie l'email? – pcasa

+0

Je l'ai mis à jour – Webnet

+0

Cela fonctionne pour séparer les deux, mais en ont besoin en une seule pièce. J'ai mis à jour ma question avec votre recommandation. – pcasa