2016-07-02 5 views
0

SQLデータベースから取得した名前のチェックリストがあります。複数のチェックボックスを選択して送信を押すと、1つのメールのみが送信され、他のメールはチェックされません。私は入力して確認しましたecho "$_POST['check']";PHPのチェックボックスリストは、さらにチェックされても1つの値しか送信しません。

私はここで間違っていますか?

<?php include('includes/config.php'); 

if(isset($_POST['check']) == true) 
{ 

    $subject = trim($_POST['subject']); 
    $message = trim($_POST['message']); 
    $from = '[email protected]'; 
    $reply = '[email protected]'; 

    foreach($_POST['check'] as $key => $value) 
    { 
     // Set content-type for sending HTML email 
     $headers = "MIME-Version: 1.0" . "\r\n"; 
     $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 
     $headers .= "From: <".$from.">\r\n"; 
     $headers .= "Reply-To: ".$reply.""; 
     if(@mail($value,$subject,$message,$headers)) 
     { 
      echo '<div class="container-fluid" style="width:50%;"> 
        <div class="alert alert-success fade in"> 
        <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>'; 
      echo '<strong>Success! </strong>'; 
      echo ' Mail has been Successfully sent to '.$value.'</br>'; 
      echo '</div></div>'; 
     } 
    } 
} 

?> 

<form method="post" action=""> 
    <?php 

    // Retrieve Email from Database 
    $getemail = mysql_query("SELECT * FROM Email_Users"); 

    if (!$getemail) die('MySQL Error: ' . mysql_error()); 

    echo '<table class="table table-bordered">'; 
    echo "<thead> 
      <tr> 
      <th><input type='checkbox' onchange='checkedbox(this)' name='chk'/></th> 
      <th>Username</th> 
      <th>Email</th> 
      </tr> 
      </thead>"; 

    if (mysql_num_rows($getemail) == 0) {  
    echo "<tbody><tr><td colspan='3'>No Data Avaialble</td></tr></tbody>";  
    } 

    while ($row = mysql_fetch_assoc($getemail)) {  
     echo "<tbody><tr><td><input value='".$row['email']."' type='checkbox' name='check[]'/></td>"; 
     echo "<td >".$row['username']."</td>"; 
     echo "<td >".$row['email']."</td></tr></tbody>"; 
    } 
    echo "</table>"; 
    ?> 
    <p>Email Subject:<input type="text" name="subject" value="" class="form-control"/></p> 
    <p>Email Content:<textarea name="message" cols="40" rows="6"></textarea></p> 
    <center><input type='submit' name='submit' value='Send Email Now' class="btn btn-primary btn-block"/> 
    </center> 
+1

あなたの郵便番号を追加できますか? – ankit

+0

私の投稿を更新しました – Fredrik

答えて

0

にチェックボックスの配列を取得するには、このjQueryのコードを使用してください。

var checkboxes = $('input[name="chk"]:checked').prop('value');

0

Working PhpFiddle

あなたのコードの大部分が働いています。私が見る唯一の問題は、配列の内容をどのように検証するかである。

次のようにprint_r機能を使用してPHPの配列人間が読める形式の試みを作るために人間の読めるPHP配列

$array = $_POST['check']; 
echo '<pre>'.print_r($array, true).'</pre>'; 

私はPhpFiddleにこのコードを入れて、あなたはそれがするフォームを送信した後、提示された配列の人間が読める形式を表示します。

メールを送信しても問題が解決しない場合は、複数のチェックボックスの値を投稿しているフォーム以外の問題が考えられます。

関連する問題