Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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_Php_Html_Ajax - Fatal编程技术网

Javascript 未调用Ajax函数

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)

所以我要做的是,使用java脚本创建一个警报。如果这个人按OK 它将向处理程序发送一个变量,处理程序将发送一封电子邮件。下面的代码就是我所拥有的,但是我在调试它时遇到了问题。截至目前,我有以下信息:

在IF语句中,单击“确定”:

    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。你也没有说出你期望发生的事情,但事实并非如此。是的,我对这一点非常陌生,谢谢你的链接,我将明确地阅读它。