[英]How to invoke the function in javascript based on condition
我正在嘗試發送用於婚禮活動的自動生成的郵件,因此我有一個使用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在運行任何Java腳本之前就已呈現出來,因此JS無法直接調用PHP函數。 在大多數情況下,為了使JS與PHP進行通信,您需要對服務器上的PHP腳本進行AJAX調用。
因此,您的前端將是一個頁面,該頁面使用JS向服務器上的單獨PHP腳本發送包含結婚日期的AJAX請求。 然后,該PHP腳本將使用mySQL之類的數據將數據保存到服務器(或者在緊要關頭,您可以使用fwrite()寫入本地文件結構,盡管完整的數據庫系統更安全。)
現在,您需要一個第二PHP腳本,該腳本每分鍾左右檢查一次數據,並在結婚日期足夠近時發送電子郵件。 但是,您不想使用自動刷新來保持PHP腳本運行。 相反,您將需要設置一個cron任務來調用您的PHP腳本,但是經常需要它。
因此,您需要的元素是:1)包含Javascript的HTML頁面,該頁面將AJAX數據發送到2)一個將該數據保存到服務器的PHP腳本,以及3)由cron調用的第二個PHP腳本,用於檢查數據並在必要時發送電子郵件
另一方面,如果您需要的只是一個特定婚禮的電子郵件提醒,那么最好通過電子郵件客戶端或使用IFTTT之類的方法安排它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.