所以我要做的是,使用java脚本创建一个警报。如果这个人按下OK 它会将一个变量发送给处理程序,处理程序将发送一封电子邮件。我有以下代码,但我在调试时遇到问题。截至目前,我有这个:
IF声明,点击OKAY:
var pressed = confirm("Click okay to email users of video upload or Cancel to keep adding videos");
if (pressed == true)
{
var variable = 44;
emailParticipants(variable);
alert ("email sent");
}
对HANDLER的看法:
function emailParticipants(sessionID)
{
var ID = sessionID;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","http://www.website.ca/portal/folder/HandleEmail.php?sessID="+ID,true);
xmlhttp.send();
}
HANDLER:
$SessID = $_GET['ID'];
<?php
$toEmail = 'someone@hotmail.com';
$toName = "TEST TEST";
<script>alert ("works");</script>
.
..
....
处理程序的其余部分只是发送电子邮件。我无法抓住错误的地方。
答案 0 :(得分:0)
好吧,你是通过AJAX调用处理程序的。 alert()
方法位于处理程序返回的页面内...但您不能对该页面执行任何操作。您提出请求并忘记了响应。浏览器不会执行AJAX调用的响应,因此alert
的代码永远不会执行。
顺便说一下,你**从不**应该发送电子邮件(或在服务器上做任何其他更改,但返回信息)与GET请求。 GET请求可以被缓存,甚至被预取,导致在未请求时发送电子邮件,或者在请求时不发送。我将请求类型更改为POST
。
如果您需要alert
,则需要更改客户端代码并添加:
xmlhttp.open("GET","http://www.website.ca/portal/folder/HandleEmail.php?sessID="+ID,true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
alert('works!');
} else {
alert('Failed! ' + xmlhttp.statusText);
}
}
}
xmlhttp.send();
我认为你对AJAX有点迷茫。您应该阅读more