我有一个由单独的php文件处理的html表单。在php文件中,有一个部分,其中html确认电子邮件被发送给填写表单的人。我不会发布整个确认电子邮件部分,但这里是标题和消息的开头:
$pfw_subject = 'Confirmation of Registration for 28th Annual Insolvency Conference';
$pfw_email_to = "$Email,$AssistantEmail";
$pfw_header = "From: cbfadmin@jbsmgmt.com\n"
. "Bcc: cdrossen@cdrmarketing.com\n"
. "Reply-To: cbfadmin@jbsmgmt.com\n"
. "MIME-Version: 1.0\n"
. "Content-Type: text/html; charset=ISO-8859-1\n";
$pfw_message = "<html>
<head></head>
<body>.....continues
这是我很难用的表格行的代码。有3种注册类型(发布的变量是$ RegType,选择是Reg1,Reg2和Reg3)有3种不同的价格(发布的变量是 - $ Total_Reg1,$ Total_Reg2,$ Total_Reg3。在电子邮件中我希望它读取这样的东西:
注册类型:$ RegType - $ Total_Reg1显示注册类型和价格
所以我需要知道该人选择哪种注册类型才能获得正确的$ Total。这是我试图做的,但它不起作用:
<tr>
<td width='35%' height='18'>Registration Type:</td>
<td width='65%' height='18'>"
if($RegType == "Reg1"){"
$RegType - $Total_Reg1"
else if ($RegType == "Reg2"){"
$RegType - $Total_Reg2"
else if ($RegType == "Reg3"){"
$RegType - $Total_Reg3"
}"
</td>
</tr>
....html continues, then finally:
</body>
</html>";
正在发生的事情是电子邮件打印出来但在注册类型停止:并且不提供值并且还中止电子邮件的其余部分。可能是某种语法错误,我确信有更好的方法可以做到这一点,所以任何帮助都将非常感激。提前致谢。
答案 0 :(得分:1)
你是绝对正确的,这里肯定会出现一些语法问题。您在字符串中定义了HTML,但是您不能在其中间放置if语句。您必须正确格式化PHP;你需要终止字符串并添加到它上面。另外,你在if语句中错过了结束括号(我实际上只删除了它们,因为它们是1-liners)。
这通常不是编写HTML的好方法,因为它使得阅读非常困难。无论...
$pfw_message = "<html><head></head><body><table><tr><td width='35%' height='18'>Registration Type:</td><td width='65%' height='18'>";
if ( $RegType == "Reg1" )
$pfw_message .= $RegType . ' - ' . $Total_Reg1;
else if ( $RegType == "Reg2" )
$pfw_message .= $RegType . ' - ' . $Total_Reg2;
else if ( $RegType == "Reg3" )
$pfw_message .= $RegType . ' - ' . $Total_Reg3;
$pfw_message .= "</td></tr></table></body></html>";
更好的方法,如果做这样的事情,则涉及使用输出缓冲。您将返回将HTML编写为HTML,并在需要时注入PHP。
<?php
// stuff
ob_start(); ?>
<html>
<head></head>
<body>
<table>
<tr>
<td width='35%' height='18'>Registration Type:</td>
<td width='65%' height='18'>
<?php
if ( $RegType == "Reg1" )
echo $RegType . ' - ' . $Total_Reg1;
else if ( $RegType == "Reg2" )
echo $RegType . ' - ' . $Total_Reg2;
else if ( $RegType == "Reg3" )
echo $RegType . ' - ' . $Total_Reg3;
?>
</td>
</tr>
</table>
</body>
</html>
<?php
$pfw_message = ob_get_clean();
// more stuff
答案 1 :(得分:0)
试试这个
$pfw_message = ' <html>
<head></head>
<body>
<tr>
<td width=\'35%\' height=\'18\'>Registration Type:</td>
<td width=\'65%\' height=\'18\'>"
if($RegType == "Reg1"){"
$RegType - $Total_Reg1"
else if ($RegType == "Reg2"){"
$RegType - $Total_Reg2"
else if ($RegType == "Reg3"){"
$RegType - $Total_Reg3"
}"
</td>
</tr>
</body>
</html>';