首页 > 解决方案 > AngularJS 和 PHPMailer 电子邮件按钮功能

问题描述

我目前正在开发一个应用程序,该应用程序允许用户通过单击按钮发送电子邮件,无论是发送给个人的单个电子邮件还是发送给所有联系人的大量电子邮件。

我被困在如何将 AJAX 链接到单个发送按钮和 PHPMailer 文件上。

这是按钮位于“发送单曲”的位置:

<script type="text/ng-template" id="display">
    <td>{{data.customer_name}}</td>
    <td>{{data.customer_email}}</td>

    <td>
        <input type="checkbox" name="single_select" class="single_select" />
    </td>
    <td>
        <button type="button" class="btn btn-info btn-sm email_button" ng-click="sendData(data.customer_name)">Send Single</button>
    </td>

    <td>
        <button type="button" class="btn btn-primary btn-sm" ng-click="showEdit(data)">Edit</button>
        <button type="button" class="btn btn-danger btn-sm" ng-click="deleteData(data.id)">Delete</button>
    </td>
</script>

<script type="text/ng-template" id="edit">
    <td><input type="text" ng-model="formData.customer_name" class="form-control"  /></td>
    <td><input type="text" ng-model="formData.customer_email" class="form-control" /></td>
     <td></td>
     <td></td>
     <td>
         <input type="hidden" ng-model="formData.data.id" />
         <button type="button" class="btn btn-info btn-sm" ng-click="editData()">Save</button>
         <button type="button" class="btn btn-default btn-sm" ng-click="reset()">Cancel</button>
     </td>
</script>

我尝试编辑删除按钮正在执行的操作以允许发送,但失败了。

$scope.sendData = function sendData(){
    if(confirm("Are you sure you want to send?"))
    {
        $http({
            method:"POST",
            url:"send_mail.php",
        }).success(function(data){
            $scope.success = true;
            $scope.successMessage = data.message;
            $scope.fetchData();
        }); 
    }
}

这是应用程序当前的外观,链接如下:

当前应用程序的图像

编辑

电子邮件的 HTML 代码位于PHPMailer文件中,我不需要通过表单对其进行处理。

原始工作版本

PHP

<?php
 $count = 0;
 foreach($result as $row)
 {
  $count++;
  echo '
  <tr id="index_table">
   <td>'.$row["customer_name"].'</td>
   <td>'.$row["customer_email"].'</td>
   <td>
    <input type="checkbox" name="single_select" class="single_select" data-email="'.$row["customer_email"].'" data-name="'.$row["customer_name"].'" />
   </td>
   <td><button type="button" name="email_button" class="btn btn-info btn-xs email_button" id="'.$count.'" data-email="'.$row["customer_email"].'" data-name="'.$row["customer_name"].'" data-action="single">Send Single</button></td>
   </td>
   <td></td>
   <td><a href="delete.php?id=<?php echo escape($row["customer_id"]); ?>"><button type="button" name="delete" id="delete" data-row="row"+count+"" class="btn btn-danger btn-xs delete">DELETE</button></a></td>
  </tr>
  ';
 }
 ?>

AJAX(不喜欢代码块)

    $.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);
   }

  });
 });
});

感谢大家 :)

标签: javascripthtmlajax

解决方案


在这里你发送参数和你没有收到的功能

<button type="button" class="btn btn-info btn-sm email_button" ng-click="sendData(data.customer_name)">Send Single</button>

解决方法

$scope.sendData = function sendData(para){ 

推荐阅读