2016-08-02 4 views
0

Das ist mein HTML zu senden:Ich bin nicht in der Lage mehr Kontrollkästchen Werte in PHP Mail-Funktion

<form action="expertform.php" method="post"> 
    <input type="hidden" name="eaid" value="" class="hidden"> 
    <div class="form-group"> 
     <label>First and Last Name</label> 
     <input type="input" id="flname" name="flname" class="form-control" required> 
    </div> 
    <div class="form-group"> 
     <label >Email</label> 
     <input type="email" id="xemail" name="xemail" class="form-control" required> 
    </div> 

    <div class="form-group"> 
     <label >Website</label> 
     <input type="input" id="website" name="website" class="form-control" required> 
    </div> 
    <h2>&nbsp;</h2> 
    <h4>Your Area(s) of Expertise </h4> 
    <div class="checkbox"> 
     <label> 
      <input type="checkbox" name="services[]" value="Fitness/Wellness"> Fitness/Wellness 
     </label> 
    </div> 
    <div class="checkbox"> 
     <label> 
      <input type="checkbox" name="services[]" value="Relationship"> Relationship 
     </label> 
    </div> 
    <div class="checkbox"> 
     <label> 
      <input type="checkbox" name="services[]" value="Self-Improvement/ Self-Empowerment"> Self-Improvement/ Self-Empowerment 
     </label> 
    </div> 
    <div class="checkbox"> 
     <label> 
      <input type="checkbox" name="services[]" value="Entrepreneurism"> Entrepreneurism 
     </label> 
    </div> 
    <div class="checkbox"> 
     <label> 
      <input type="checkbox" name="services[]" value="Money Management"> Money Management 
     </label> 
    </div> 
    <div class="checkbox"> 
     <label> 
      <input type="checkbox" name="services[]" value="Travel/Lifestyle Advice"> Travel/Lifestyle Advice 
     </label> 
    </div> 
    <div class="checkbox"> 
     <label> 
      <input type="checkbox" name="services[]" value="Others"> Others 
     </label> 
    </div> 
    <div class="form-group"> 
     <label ><b>Approximately how many clients/readers/followers do you have, combined? </b> </label> 
     <textarea rows="5" class="form-control" id="approxclient" name="approxclient"></textarea> 

    </div> 
    <div class="form-group"> 
     <label><b>Any other thought and comments on the platform</b></label> 
     <textarea id="comments" name="comments" class="form-control" rows="3"></textarea> 
    </div> 

    <h2>&nbsp;</h2> 
    <button type="submit" class="btn btn-info">Submit</button> 
</form> 

Und das ist meine PHP-Funktion der E-Mail zu senden. Es ist nicht in der Lage, Checkbox-Wert an Mail zu senden, aber alles andere funktioniert gut.

if(!preg_match("/http/i", $_POST['approxclient']) && $_POST['eaid'] == '' && !$_POST['flname'] == '' && !$_POST['xemail'] == '') { 

    $my_email88 = '[email protected]' . ', '; // note the comma 
    $subject = "INTERESTED IN PARTNERING"; 

    // Use the submitters email if they supplied one (and it isn't trying to hack your form). 
    // Otherwise send from your email address. 
    if($_POST['email'] && !preg_match("/[\r\n]/", $_POST['email'])) { 
     $headers = "From: $_POST[email]\n"; 
    } else { 
     $headers = "From: $my_email88\n"; 
    } 

    //$headers = $headers . "Bcc: put email id here \n"; 

    // prepare a "pretty" version of the message 
    $message = $message . "Name and Last Name: " . $_POST['flname'] . "\n"; //" " . $_POST['lname'] . 
    $message = $message . "Email: " . $_POST['xemail'] . "\n"; 
    $message = $message . "Website. " . $_POST['website'] . "\n"; 
    $message = $message . "Your Area(s) of Expertise"."\n"; 
    $services = 'None'; 

    if(isset($_POST['services']) && is_array($_POST['services']) && count($_POST['services']) > 0){ 
     $selectedServices = implode(', ', $_POST['services']); 
    } 
} 
+0

Sie mehrere Kontrollkästchen Wert in PHP Mail-Funktion senden arbeitet bevorzugen. – Dharmendra

+0

Ja, ich versuche, das mit dem obigen Code zu tun, aber nicht in der Lage, Checkbox-Wert und andere Felder zu senden funktionieren gut –

+0

Was ist Input-Typ "Eingabe"? Ist das eine echte E-Mail im Code (vorschlagen, es zu entfernen). Die beste Möglichkeit, dies zu debuggen, ist die Verwendung von 'var_dump ($ _ POST)' in Ihrer Mail-Funktion und vergleichen Sie das, was Sie sehen mit dem, was Sie erwarten. – moopet

Antwort

-1

Versuchen folgenden Code hinzuzufügen,

$message = $message . "Your Area(s) of Expertise"."\n"; 

if(isset($_POST['services']) && is_array($_POST['services']) && count($_POST['services']) > 0){ 
    $selectedServices = implode(', ', $_POST['services']); 
    foreach($selectedServices as $ss) 
    { 
    $message = $message.$ss; 
    } 
} 
+1

Das macht keinen Sinn - Sie reduzieren das '$ _POST ['services']' - Array in einen String und versuchen dann, es zu durchlaufen, was wahrscheinlich ist arbeiten, weil es die Zeichenfolge wie eine Reihe von Zeichen indiziert, aber es ist seltsam und nicht hilfreich wie das. Nur '$ message. = $ SelectedServices' sollte den Trick machen. – moopet

+0

$ message. = $ SelectedServices hat nicht funktioniert, weil Sie das Array nicht direkt ohne seinen Indexwert schreiben können. –

+1

@SarvagnaMehta nach implodieren, gibt es keine Anordnung. Es ist nur eine Zeichenfolge danach. – Jakumi

0

Hier ist mein Code, die perfekt

$services = 'None'; 
if(!empty($_POST['services']) && is_array($_POST['services'])){ 
    $message = $message . implode(', ', $_POST['services']). "\n"; 
} 
Verwandte Themen