Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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
Php jQuery电子邮件没有文本/提交两次_Php_Javascript_Email_Jquery - Fatal编程技术网

Php jQuery电子邮件没有文本/提交两次

Php jQuery电子邮件没有文本/提交两次,php,javascript,email,jquery,Php,Javascript,Email,Jquery,我试图简单地发送一封电子邮件到一个硬编码的电子邮件地址,作为一个报告错误按钮的功能。但是,我尝试输入到发送电子邮件的php文件中的文本不会被传输,我的javascript文件中的email函数会同时发送两封电子邮件。不知道为什么会发生这两种情况 这是我所有关于电子邮件功能的代码 错误页面(HTML) 我的PHP文件名为: <?php $message = $_POST["vardata"]; mail("example@gmail.com", "Mystery person", $me

我试图简单地发送一封电子邮件到一个硬编码的电子邮件地址,作为一个报告错误按钮的功能。但是,我尝试输入到发送电子邮件的php文件中的文本不会被传输,我的javascript文件中的email函数会同时发送两封电子邮件。不知道为什么会发生这两种情况

这是我所有关于电子邮件功能的代码

错误页面(HTML)

我的PHP文件名为:

<?php

$message = $_POST["vardata"];

mail("example@gmail.com", "Mystery person", $message);
?>


如果$message字段是硬编码的,我可以在电子邮件中很好地获取文本,但它无法从vardata标记中获取文本。而且,正如您所看到的,它提交了两次。只需单击ReportBug按钮并点击send。

在PHP文件中,您将获得
$\u POST[“vardata”]
,但在javascript中,该字段称为
data
。因此,请改用
$\u POST[“data”]

在PHP文件中,您将获得
$\u POST[“vardata”]
,但在javascript中,该字段称为
data
。因此,请改用
$\u POST[“data”]

在分析
控制台
面板时,似乎有两个
ajax
调用,这是因为
id=“send”
附加了两次单击事件

因此,这里有一个技巧,首先
取消绑定
id=“send”
锚点上的所有点击事件,然后附加点击事件,这将解决两次电子邮件问题

$(document).ready(function(){
$("#send").unbind("click");
$("#send").click(function(){
 email();
});
});

在分析
控制台
面板时,似乎有两个
ajax
调用,这是因为
id=“send”
附加了两次单击事件

因此,这里有一个技巧,首先
取消绑定
id=“send”
锚点上的所有点击事件,然后附加点击事件,这将解决两次电子邮件问题

$(document).ready(function(){
$("#send").unbind("click");
$("#send").click(function(){
 email();
});
});

您需要使用以下名称将数据发送到服务器:

$.ajax({ /* ... */, data: {vardata: vardata}});
至于双重发送,您将两次连接
click
事件,虽然我看不到第二个事件连接到哪里,但我怀疑它是自动生成的,然后一次性丢弃


您可以通过调用
jQuery来查看连接的事件。_data($(“#send”)[0],“events”)。两个事件是有线的,两个处理程序函数是相同的(它们调用
email();
)。

您需要使用以下名称将数据发送到服务器:

$.ajax({ /* ... */, data: {vardata: vardata}});
至于双重发送,您将两次连接
click
事件,虽然我看不到第二个事件连接到哪里,但我怀疑它是自动生成的,然后一次性丢弃


您可以通过调用
jQuery来查看连接的事件。_data($(“#send”)[0],“events”)。两个事件是有线的,两个处理程序函数都是相同的(它们调用
email();
)。

当您通过jQuery的ajax方法向PHP发送数据时,将其设置为JSON对象会很有帮助,这样您就可以从PHP中的$\u POST数组中获取所需的值

例如:

var name = "Joey"; 
var email = "example@gmail.com"
var vardata = $("textarea").val();

$.ajax({
    type: "POST",
    url: "email.php",
    data: {name:name, email:email, vardata:vardata}, 
    success: function() {
        alert("Your bug report was sent!");
    }
});
通过这种方式,您可以在PHP代码中获得如下数据:

$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['vardata'];

当您通过jQuery的ajax方法将数据发送到PHP时,将其设置为JSON对象是很有帮助的,这样您就可以从PHP中的$\u POST数组中获得所需的值

例如:

var name = "Joey"; 
var email = "example@gmail.com"
var vardata = $("textarea").val();

$.ajax({
    type: "POST",
    url: "email.php",
    data: {name:name, email:email, vardata:vardata}, 
    success: function() {
        alert("Your bug report was sent!");
    }
});
通过这种方式,您可以在PHP代码中获得如下数据:

$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['vardata'];

data
是发送到服务器的字段名,而不是字段名。这不起作用。。。我仍然没有收到电子邮件中的文本:/对不起,我习惯于使用
$.post
而不是
$.ajax
。在文章中,你不必设置类型,花括号之间的内容就像我说的那样。把它弄混了,我的错。
数据
是,而不是发送到服务器的字段的名称。这不起作用。。。我仍然没有收到电子邮件中的文本:/对不起,我习惯于使用
$.post
而不是
$.ajax
。在文章中,你不必设置类型,花括号之间的内容就像我说的那样。搞混了,我的错。这对发送两次问题有效!谢谢:)我希望我能选择两个正确的答案..这当然是正确的,但这是他面临的一个bug的解决办法。如果他不知道是什么在连接它们,那么出现三次点击事件只是时间问题。类似地,您可以链接这些调用:
$(“#发送”)。解除绑定(“单击”)。单击(…)以避免潜在的DOM查找。这对发送两次问题有效!谢谢:)我希望我能选择两个正确的答案..这当然是正确的,但这是他面临的一个bug的解决办法。如果他不知道是什么在连接它们,那么出现三次点击事件只是时间问题。类似地,您可以链接这些调用:
$(“#发送”)。解除绑定(“单击”)。单击(…)以避免潜在的DOM查找。此答案有效!文本现在显示出来了!我认为这是因为您将所有字段分组到“data”变量中。非常感谢大家!你们都做出了贡献并帮助了我:)这个答案奏效了!文本现在显示出来了!我认为这是因为您将所有字段分组到“data”变量中。非常感谢大家!你们都做出了贡献并帮助了:)