Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在ajax中发送用户的相应电子邮件_Javascript_Jquery - Fatal编程技术网

Javascript 在ajax中发送用户的相应电子邮件

Javascript 在ajax中发送用户的相应电子邮件,javascript,jquery,Javascript,Jquery,我正在研究ajax我面临的问题是我有两个功能,第一个是通过ajax为服务器上的用户获取数据。收到的数据包含电子邮件以及每个用户的所有其他数据。每个用户的电子邮件都保存在一个变量中,假设我们有一个用户,他的电子邮件是user@A.com和另一个有电子邮件的用户Buser@b.com如果有更多用户,用户c也是如此,以此类推。下面是代码 $(response).find(".EMP_EMAIL>span").each(function(i, span) { employee_email

我正在研究ajax我面临的问题是我有两个功能,第一个是通过ajax为服务器上的用户获取数据。收到的数据包含电子邮件以及每个用户的所有其他数据。每个用户的电子邮件都保存在一个变量中,假设我们有一个用户,他的电子邮件是user@A.com和另一个有电子邮件的用户Buser@b.com如果有更多用户,用户c也是如此,以此类推。下面是代码

$(response).find(".EMP_EMAIL>span").each(function(i, span) {
    employee_email = $(span).text();
请记住,员工电子邮件是一个全局变量

现在,第二个功能是通过ajax发送电子邮件,url包含电子邮件作为参数。发送电子邮件功能通过单击按钮调用,每个用户记录都有自己的按钮。问题是,如果我单击用户A下面的按钮,那么url中的参数应该是user@A.com若点击了用户B记录下面的按钮,那个么参数应该是user@B.com如果用户存在的话,c等也一样。下面是它的代码。但在我的情况下,它只发送电子邮件到保存在employee_电子邮件中的最后一封电子邮件。所以我无法为它的逻辑,所以需要你的帮助。如果可能的话,请详细说明您的答案,以便我能够理解并在将来能够自己处理此类情况

function sendEmail(){

if(flag)
{
    request = $.ajax({
        url: "send_email.php?"+employee_email,
        type: "post",
        success: function(data){
            $("#email_responses").html();
        },
        error:function(){
            alert("failure");
            $("#email_responses").html('error occured');
        }
    });
}
else
    alert('Sending email is unavailable currently. PLease try after some time.');
} 
下面是显示在每个用户下方的按钮的代码

<div class="send_email_notification">
<input type="submit" value="Send Email" onClick="sendEmail();">
</div>

一些帮助您解决问题的建议:

1-避免使用全局变量

在您的第一个代码中,您迭代了所有跨度以设置全局变量的值。在循环结束时,此全局变量将只包含最后一封电子邮件。这可能是你问题的根源

2-一个可能的解决方案

你的问题有不同的解决方案。这里有一个:单击按钮时,从单击的按钮中检索带有jquery路径的选定电子邮件。例如,如果您的html为:

<div>
  <span class="email">user@domain.com</span>
  <div class="send_email_notification">
     <input type="submit" value="Send Email" />
  </div>
</div>

注意:您还应该避免在html元素中使用onClick属性。一种更现代的方法是将javascript与html代码分离:这就是为什么我将其从html版本的代码中删除的原因。

每件事都很清楚,那么为什么要关闭votethnks以便回复,但此处的currentTarget是什么?currentTarget应该是用户单击的元素。在本例中,输入[submit]元素。
function sendEmail(event) {
   var target = event.currentTarget;
   var email = $(target).parent().parent().find(".email").text();
   // and so on...
 }

 $('.send_email_notification input').on('click', sendEmail);