我想从某个时间点发送电子邮件

我为一家向客户销售维护包(以小时为单位)的公司做秒表。每个客户在他的包中都有一个定义的时间。当员工为客户工作时,他启动秒表,完成后将完成的任务(包括完成日期、评论和以分钟为单位的时间)发送到数据库中。我还被要求在包中剩余时间达到 1 小时时自动向项目经理发送电子邮件。


我用 JavaScript 制作了秒表,并将其集成到 PHP 代码中。我分配了一个“标志”,允许确定何时发送有问题的邮件(合同时间 - 秒表时间)。但是,我在使用 document.getElementById("flag").innerHTML 时遇到的问题是标志值的变化只出现 1 秒。因为我想通过 mail() 函数在 php 中发送邮件,所以我需要在标志设置为 true 时保存此值,并将其作为 POST 方法传输,以便稍后能够发送邮件。


这是秒表的部分代码:


// Calcul de temps du chronomètre (en secondes)

function envoyerAudio(minutes,heures,secondes){

minAlarm = parseInt(minutes);

hrAlarm  = parseInt(heures);

secAlarm = parseInt(secondes);

flagAudio = true;

    if (hrAlarm!= 00) {

        minAlarm = minAlarm + (hrAlarm * 60);

    }

    if (minAlarm != 00){

        secAlarm = secAlarm + (minAlarm * 60);

    }

return secAlarm;

}


var resultat = ((tempsRestant * 60) - (envoyerAudio(min,hr,sec)));


// Gestion des alarmes 

if(resultat == 3600){

    audio.play();

    // Permet, lorsque flagAlert="true", d'envoyer un mail au chargé de projet

    document.getElementById("flagAlert").innerHTML = "true";

} else{

    document.getElementById("flagAlert").innerHTML = "false";   

}


if(resultat == 0){

    audio.play();   

}

if(resultat == -3000){

    audio.play();

    alert ("Arrêtez la tâche en cours !!");

}


你对我如何实现我想要的有什么想法吗?


慕容森
浏览 109回答 2
2回答

守着星空守着你

notifyProjectManager.php这应该向$_GET变量中包含您需要的值发送请求。您可以更改var paramsKeys以添加更多键。// Calcul de temps du chronomètre (en secondes)function envoyerAudio(minutes, heures, secondes) {&nbsp; &nbsp; minAlarm = parseInt(minutes);&nbsp; &nbsp; hrAlarm = parseInt(heures);&nbsp; &nbsp; secAlarm = parseInt(secondes);&nbsp; &nbsp; flagAudio = true;&nbsp; &nbsp; if (hrAlarm != 00) {&nbsp; &nbsp; &nbsp; &nbsp; minAlarm = minAlarm + (hrAlarm * 60);&nbsp; &nbsp; }&nbsp; &nbsp; if (minAlarm != 00) {&nbsp; &nbsp; &nbsp; &nbsp; secAlarm = secAlarm + (minAlarm * 60);&nbsp; &nbsp; }&nbsp; &nbsp; return secAlarm;}var resultat = ((tempsRestant * 60) - (envoyerAudio(min, hr, sec)));// Gestion des alarmes&nbsp;if (resultat == 3600) {&nbsp; &nbsp; audio.play();}if (resultat < 3600) {&nbsp; &nbsp; if (!!window.notifyProjectManager) {&nbsp; &nbsp; &nbsp; &nbsp; var params = [];&nbsp; &nbsp; &nbsp; &nbsp; var paramsKeys = ['user', 'temps', 'iduser', 'affichage', 'chargeProjet'];&nbsp; &nbsp; &nbsp; &nbsp; for (var i in paramsKeys) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var key = paramsKeys[i];&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; params.push(key + '=' + getByNameValue(key));&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; get('notifyProjectManager.php?' + params.join('&'), function () {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; window.notifyProjectManager = true;&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; // Permet, lorsque flagAlert="true", d'envoyer un mail au chargé de projet&nbsp; &nbsp; &nbsp; &nbsp; document.getElementById("flagAlert").innerHTML = "true";&nbsp; &nbsp; }} else {&nbsp; &nbsp; document.getElementById("flagAlert").innerHTML = "false";}// get request (working in all browsers)function get(url, callback) {&nbsp; &nbsp; var xhr = new XMLHttpRequest();&nbsp; &nbsp; xhr.onreadystatechange = function () {&nbsp; &nbsp; &nbsp; &nbsp; if (xhr.readyState === 4) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (xhr.status === 200) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; callback(xhr.responseText);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; };&nbsp; &nbsp; xhr.open('GET', url);&nbsp; &nbsp; xhr.send(null);}function getByNameValue(name) {&nbsp; &nbsp; return encodeURIComponent(document.getElementsByName(name)[0].value);}if (resultat == 0) {&nbsp; &nbsp; audio.play();}if (resultat == -3000) {&nbsp; &nbsp; audio.play();&nbsp; &nbsp; alert("Arrêtez la tâche en cours !!");}

潇潇雨雨

我看不到你的超时/间隔函数在哪里,所以我不能更具体......但基本上你可以在计时器到期时在该函数中设置一个标志,然后在相同或下一个勾号。现在,如果您需要发送电子邮件。在 X 时间点,无论浏览器是否打开,您都可以在服务器上使用 Cron。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript