【发布时间】:2016-05-18 16:10:36
【问题描述】:
我需要在添加新记录时发送电子邮件提醒,但表格也有输入字段,当用户编辑这些输入字段时我不需要提醒。
我有一个用于设备交付日期的数据库。用户将安排一件设备的交付,然后将日期输入后端数据库(SQL Server)。
我创建了一个 php 应用程序,它查看后端数据库并将交付的总数放在 jquery 日历上。
当用户点击日历上的某一天时,它会拉出一个显示以下内容的表格:
Date
Equipment
Customer
然后我创建了一个 mysql 表,该表将该信息推送到我的本地 msyql 表中,其中包含以下字段:
AssignedPerson
Status
Comments
然后,用户可以对交付进行注释。
问题有时是交货日期发生变化或添加了新的交货,除非我们不断检查 php 应用程序,否则我们不知道。
我想在添加新记录时发送警报,但当用户更新表格时我不需要警报。
这是用户更新表格时的代码。同样,我仅在从 SQL 后端数据库向 mysql 表中添加新记录时发出警报:
include('./PHPMailer-master/class.phpmailer.php');
servername_wamp = "localhost";
$username_wamp = "root";
$password_wamp = "";
if(isset($_POST['id']))
{
$id=mysql_escape_String($_POST['id']);
$AssignedPerson=mysql_escape_String($_POST['AssignedPerson']);
$ShipDate=mysql_escape_String($_POST['ShipDate']);
$Status=mysql_escape_String($_POST['Status']);
$Numofmachines=mysql_escape_String($_POST['Numofmachines']);
$Model=mysql_escape_String($_POST['Model']);
$a = mysql_connect($servername_wamp, $username_wamp, $password_wamp) or die(mysql_error());
$b = mysql_select_db('orders', $a) or die(mysql_error());
$result2 = mysql_query("SELECT * FROM orders WHERE OrderNumber='$OrderNumber' LIMIT 1",$a) or die(mysql_error());
$rs=mysql_fetch_row($result2);
if ($rs) {
if (($rs['ShipDate_log']=='')&&($Status=='Assigned')) {
$sd=", ShipDate_log='".$ShipDate."'";
$message1982 = "
<ul>
<li> <strong>ID:</strong> $id </li>
<li> <strong><font color='red'>Tech:</font></strong> $AssignedPerson </li>
<li> <strong>Ship Date:</strong> $ShipDate </li>
<li> <strong>Customer:</strong> $Customer </li>
<li> <strong>Status:</strong> $Status </li>
<li> <strong>Sales Rep:</strong> $SalesRep </li>
<li> <strong>Order Number:</strong> $OrderNumber</li>
<li> <strong>Number Of Machines:</strong> $Numofmachines </li>
</ul>
";
$mail = new PHPMailer(); // defaults to using php "mail()"
$body = $message1982;
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = false; // authentication enabled
$mail->Host = "10.10.10.38";
$mail->Port = 25; // or 587
$mail->IsHTML(true);
$mail->SetFrom("nservice2@everyone.com");
$address = "bot@everyone.com";
$mail->AddAddress($address, "John");
$mail->Subject = ''. $Customer. ' Ticket Assigned';
$mail->MsgHTML($body);
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
【问题讨论】:
-
那么问题出在哪里?你已经指出了你喜欢和不喜欢做什么。也许是触发器?如果这就是问题所在
-
警告:如果您只是学习 PHP,请不要学习过时的
mysql_query接口。这很糟糕,已在 PHP 7 中删除。PDO is not hard to learn 之类的替代品和PHP The Right Way 之类的指南有助于解释最佳实践。 -
我也不知道你为什么要转义用于显示的值。正确的函数是
htmlspecialchars。 -
那么你缺少什么你想要的部分(或导致错误)?我了解您的程序,解释很好,尽管它只是缺少一个解释,指出您遇到问题的地方。您不想要更改日期的弹出窗口,但是您制作的弹出窗口在哪里?是您不知道如何创建弹出窗口的问题吗?请澄清
标签: javascript php jquery mysql