2016-08-02 13 views
0

PHPのメール機能で複数のチェックボックスの値を送信することはできませんよ。私はこれが私のHTMLで

<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> 

そして、これは、メールを送信するために私のPHP関数です。メールにチェックボックスの値を送ることはできませんが、それ以外はうまくいきます。

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

あなたはPHPのメール機能で複数のチェックボックスの値を送信することを好むことができます取り組んでいる私のコードです。 – Dharmendra

+0

はい私は上記のコードでそれをしようとしているが、チェックボックスの値を送信することができず、他のフィールドは正常に動作しています –

+0

入力タイプ "入力"とは何ですか?それはコード内の実際の電子メールですか(削除することをお勧めします)。これをデバッグする最善の方法は、あなたのメール関数の 'var_dump($ _ POST)'です。あなたが見ているものとあなたが見たいものを比較します。 – moopet

答えて

-1

あなたのコードに以下を追加しようとすると、ここで

$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

それは意味をなさない - あなたは '$ _POST ['services']'配列を文字列に崩壊させ、それをループすることを試みます。これはおそらく文字の配列のような文字列をインデックスしているので動作しますが、それは奇妙で、そのようには役に立たないです。ただ '$ message。= $ selectedServices'はそのトリックを行うべきです。 – moopet

+0

$ message。= $ selectedServicesは、インデックス値なしで直接配列を書き込むことができないため、動作しませんでした。 –

+1

@SarvagnaMehtaはimplode後に配列がありません。それはその後の文字列です。 – Jakumi

0

は完全に

$services = 'None'; 
if(!empty($_POST['services']) && is_array($_POST['services'])){ 
    $message = $message . implode(', ', $_POST['services']). "\n"; 
} 
関連する問題