javascript - 如何根据条件调用javascript中的函数

标签 javascript php html

我正在尝试发送自动生成的婚礼邮件,因此我有一个使用 Java 脚本的倒计时器,并且我想在一天之前发送提醒。我尝试了 php 和 java 脚本,但没有得到预期的输出。

使用java脚本尝试了下面的代码,但它没有在控制台上发送/显示我的消息

<!DOCTYPE html>
<html>

<p id="demo"></p>

<style>
p {
  text-align: center;
  color: #7FFF00;
  font-size: 50px;
  margin-top: 0px;
}
</style>



<script>
// Set the date we're counting down to
var countDownDate = new Date("April 3, 2019 10:30:01").getTime();

// Update the count down every 1 second
var x = setInterval(function() {

  // Get todays date and time
  var now = new Date().getTime();

  // Find the distance between now and the count down date
  var distance = countDownDate - now;

  // Time calculations for days, hours, minutes and seconds
  var days = Math.floor(distance / (1000 * 60 * 60 * 24));
  var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);

  // Output the result in an element with id="demo"
  document.getElementById("demo").innerHTML = days + "d " + hours + "h "
  + minutes + "m " + seconds + "s ";

  // If the count down is over, write some text 
  if (distance < 0) {
    clearInterval(x);
    document.getElementById("demo").innerHTML = "Today is the wedding";
  } 
  var myvar=20;
  while(distance==myvar){
       document.getElementById("demo").innerHTML = "Reminder";
<?php

//to send an wedding reminder

include "Sendmail.php"

?>


  }
}, 1000);
</script>

</html>
<小时/>

因此,我尝试使用页面自动刷新选项使用下面的 Php:但它没有按执行方式工作---------------------------- -------------------------------------------------- -

 <!DOCTYPE html>
<html>
<body>

<?php

echo "Today is " . date("l");

//date_default_timezone_set('America/New_York');
//timezone_name_from_abbr('IHST',19800) for Asia/Colombo

//set the timezone for ist:
date_default_timezone_set('Asia/Kolkata');

$today = date("Y-m-d H:i:s");
$date = "2019-02-26 07:43:16  ";

$tilldate = "2019-02-26 07:43:50  ";

echo $today;

do {

    $page = $_SERVER['PHP_SELF'];
    $sec = "6";
    //echo "Watch the page reload itself in 3 second!";

}while ( $date<=$today)


echo" when satisfied call my function and come out of loop";
break;
//if($today < $date ||$today < $tilldate){
    //echo "Watch the page reload itself in 3 second!";
    //break;

    //   echo "Watch the page reload itself in 3 second!";

    //include 'FetchData.php';

//}


?>


<html>
    <head>
    <meta http-equiv="refresh" content="<?php echo $sec?>;URL='<?php echo $page?>'">
    </head>
    <body>
    <?php
        echo "Watch the page reload itself in six  second!";
    ?>

    </html>

如果有人在这方面帮助我,那将会非常有帮助。

最佳答案

如果您的目标是建立一个网站,人们可以在其中输入婚礼日期,并在设定的时间之前通过电子邮件向他们发送提醒,则您需要以某种方式将该数据存储在服务器上。

如果您熟悉 NodeJS,您可以使用它来设置一个小应用程序,将婚礼日期保存在内存中(尽管长期存储更安全),然后您可以使用类似 Nodemailer 的东西。到达时间后发送电子邮件。

但是,如果您不了解 NodeJS,仅使用 Javascript 是不够的 - 并且您无法像您所做的那样使用嵌入来使用 JS 调用 PHP 代码。请记住,PHP 是在任何 Javascript 运行之前渲染出来的,因此 JS 不能直接调用 PHP 函数。在大多数情况下,为了让 JS 与 PHP 通信,您需要对服务器上的 PHP 脚本进行 AJAX 调用。

因此,您的前端将是一个使用 JS 将包含婚礼日期的 AJAX 请求发送到服务器上单独的 PHP 脚本的页面。然后,该 PHP 脚本将使用 mySQL 之类的工具将该数据保存到服务器(或者在紧要关头,您可以使用 fwrite() 写入本地文件结构,尽管完整的数据库系统更安全。)

现在您需要第二个 PHP 脚本,该脚本每分钟左右检查一次数据,并在婚礼日期足够接近时发送电子邮件。但是,您不想使用自动刷新来保持 PHP 脚本运行。相反,您需要设置 cron根据您需要的频率调用您的 PHP 脚本的任务。

因此,您需要的元素是:1) 包含 Javascript 的 HTML 页面,它将 AJAX 数据发送到 2) 一个 PHP 脚本,用于将该数据保存到您的服务器,以及 3) 第二个 PHP 脚本,由 cron 调用,它必要时检查数据和电子邮件

另一方面,如果您需要的只是一场特定婚礼的电子邮件提醒,那么您最好通过电子邮件客户端安排它,或者使用 IFTTT 之类的东西。 .

关于javascript - 如何根据条件调用javascript中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54682842/

相关文章:

javascript - 如何在不同的时间为每个元素运行函数?

javascript - React 计时器无法读取未定义的属性秒

php - 排序mysql结果数据

php - 找不到套接字传输 “tls”-在配置PHP时是否忘记启用它?)

javascript - XHR2 addEventListener 与属性

javascript - 将列表的每次出现限制为 1

php - 使用 preRemove/postRemove 事件来获取哪些查询可以执行,哪些不可以

Javascript 触摸库仍然允许桌面事件工作

javascript - 如何使多个内联图像响应?

javascript - $(e).attr(name,value) 与 e.setAttribute(name,value) 有什么好处?