使用jquery从数据库向所有用户发送带有textarea值的电子邮件

时间:2016-04-11 16:39:45

标签: jquery mysql ajax database email

我正在尝试使用textarea中的值向数据库中的所有用户发送电子邮件。但我在这里做错了。我认为问题是从数据库中选择数据的某个地方,因为如果我手动添加一个电子邮件地址就可以了。

HTML

<textarea name="banner-text" id="banner-text" placeholder="Escrever…" ><?php echo $baner['banner']; ?></textarea>
<button type="submit" name="send-email" id="send-email" onClick="return false" >Notification</button>

$(function(){
     $("#send-email").click(function(){
        var n = $("#banner-text").val();
        $.ajax({
                 url: 'noti-per-email.php',
                 type: 'POST',
                 data: { baner_text:n },
                 success: function(data) { console.log(data) }
        });
    });
 });

PHP文件

connection...

$banner = ($_POST['baner_text']);
$banner_message = str_replace("\n.", "\n..", $banner );

$sql_clients = "SELECT email FROM clients";
$result_clients = $conn->query($sql_clients);

        while($row = mysql_fetch_array($result_clients)){
            $emails = $row['email'] . ",";
        }

    $to      = $emails;
    $subject = '';

    mail($emails, $subject, $banner_message);   

1 个答案:

答案 0 :(得分:1)

您未在此部分中添加额外的电子邮件

$result_clients = $conn->query($sql_clients);

        while($row = mysql_fetch_array($result_clients)){
            $emails = $row['email'] . ",";
        }

该值正在被覆盖。而不是$emails = ...,请使用$emails .= ...

.=会在字符串中添加额外的文字,而=会覆盖它。