为了账号安全,请及时绑定邮箱和手机立即绑定

我怎样才能从 phpmailer 中的输入中给出主题和正文消息

我怎样才能从 phpmailer 中的输入中给出主题和正文消息

PHP
慕田峪4524236 2023-08-11 16:41:29
这是index.php 现在我所能做的就是给 $mail->Subject 和 $mail->body 赋值,但我希望它是动态的,例如在这里我想为主题和消息提供 2 个输入并传递它在 $mail->Subject 和 $mail->Body 上,因为 post 方法是在 ajax 上,我无法将两个值从输入字段传递到 send_mail.php 任何帮助将不胜感激<?php    //index.php        $connect = new PDO("mysql:host=localhost;dbname=testing", "root", "");    $query = "SELECT * FROM customer ORDER BY customer_id";    $statement = $connect->prepare($query);    $statement->execute();    $result = $statement->fetchAll();        ?>    <!DOCTYPE html>    <html>    <head>               <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>    </head>    <body>    <br />    <div class="container">              <br />        <div class="table-responsive">                <table class="table table-bordered table-striped">                <tr>                    <th>Customer Name</th>                    <th>Email</th>                    <th>Select</th>                    <th>Action</th>                </tr>
查看完整描述

2 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

我假设您想为每封电子邮件数据的主题和消息添加两个输入。


您可以添加 2 个字段,并在 ajax 中将其与电子邮件数据一起设置并将其传递给 send_mail.php。


JS代码


<script>

    $(document).ready(function(){

        $('.email_button').click(function(){

            $(this).attr('disabled', 'disabled');

            var id  = $(this).attr("id");

            var action = $(this).data("action");

            var email_data = [];

            if(action == 'single')

            {

                email_data.push({

                    email: $(this).data("email"),

                    name: $(this).data("name"),

                    subject: $(this).data("subject"), //or can be grab from input

                    message: $(this).data("message")

                });

            }

            else

            {

                $('.single_select').each(function(){

                    if($(this).prop("checked") == true)

                    {

                        email_data.push({

                            email: $(this).data("email"),

                            name: $(this).data('name'),

                            subject: $(this).data("subject"), //or can be grab from input

                    message: $(this).data("message")

                        });

                    }

                });

            }


            $.ajax({

                url:"send_mail.php",

                method:"POST",

                data:{email_data:email_data},

                beforeSend:function(){

                    $('#'+id).html('Sending...');

                    $('#'+id).addClass('btn-danger');

                },

                success:function(data){

                    if(data == 'ok')

                    {

                        $('#'+id).text('Success');

                        $('#'+id).removeClass('btn-danger');

                        $('#'+id).removeClass('btn-info');

                        $('#'+id).addClass('btn-success');

                    }

                    else

                    {

                        $('#'+id).text(data);

                    }

                    $('#'+id).attr('disabled', false);

                }

            })


        });

    });

</script>

在 send_mail.php 中替换以下行


$mail->Subject = 'i want input to be passed here'; 

//An HTML or plain text message body

$mail->Body = 'and the body message to be passed here';

有了这个


$mail->Subject = $row["subject"]; 

$mail->Body = $row["message"];

希望它能回答您的问题。


查看完整回答
反对 回复 2023-08-11
?
偶然的你

TA贡献1841条经验 获得超3个赞

首先:使用ajax仅发送用户id(最好在js中使用fetch()来请求),然后从数据库中获取文件(send_mail.php)中的用户数据(用户验证)!

如果不是通过会话,则需要通过检查数据库来进行用户验证。

查看完整回答
反对 回复 2023-08-11
  • 2 回答
  • 0 关注
  • 97 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信