Javascript 未调用Ajax函数
所以我要做的是,使用java脚本创建一个警报。如果这个人按OK 它将向处理程序发送一个变量,处理程序将发送一封电子邮件。下面的代码就是我所拥有的,但是我在调试它时遇到了问题。截至目前,我有以下信息: 在IF语句中,单击“确定”:Javascript 未调用Ajax函数,javascript,php,html,ajax,Javascript,Php,Html,Ajax,所以我要做的是,使用java脚本创建一个警报。如果这个人按OK 它将向处理程序发送一个变量,处理程序将发送一封电子邮件。下面的代码就是我所拥有的,但是我在调试它时遇到了问题。截至目前,我有以下信息: 在IF语句中,单击“确定”: var pressed = confirm("Click okay to email users of video upload or Cancel to keep adding videos"); if (pressed == true)
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");
}
发送到处理程序的函数:
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();
}
处理程序:
$SessID = $_GET['ID'];
<?php
$toEmail = 'someone@hotmail.com';
$toName = "TEST TEST";
<script>alert ("works");</script>
.
..
....
$sessiond=$\u GET['ID'];
好的,您正在通过AJAX调用处理程序。alert()
方法位于处理程序返回的页面内。。。但是你没有对那页做任何事情。你提出了一个请求,却忘记了答复。浏览器不会执行来自AJAX调用的响应,因此带有警报的代码永远不会执行
顺便说一句,您**绝不**应该使用GET请求发送电子邮件(或在服务器中进行任何其他更改,但返回信息)。GET请求可以被缓存,甚至预取,从而在未被请求时发送电子邮件,或者在被请求时不发送电子邮件。我会将请求类型更改为POST
如果您需要您的警报
,您需要更改客户端代码并添加以下内容:
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有点迷茫。您应该阅读我不明白为什么处理函数会发送电子邮件。你没有代码可以做到这一点,当你点击alert(“works”)时,它就会退出代码>因为那不是PHP。你也没有说出你期望发生的事情,但事实并非如此。是的,我对这一点非常陌生,谢谢你的链接,我将明确地阅读它。