换行使用 在电子邮件中工作,但不在购物车中工作


Line break using working in email but not in shopping cart

我使用下面的代码将复选框项存储在MySQL数据库中。第三行是我需要在每个项目之间加一个换行符的地方。我尝试了<br><br />,尽管它在标准页面的屏幕上看起来很棒,但它实际上在电子邮件收据中显示了<br><br /> html,并且没有换行。

for ($i=0; $i<count($_POST['swatchname']);$i++) {
  $swatchname.= $_POST['swatchname'][$i];
  $swatchname.="<br />";  
}  

在我发送电子邮件的javascript中,我一直在使用''n在电子邮件中换行,效果非常好。

问题是…我应该用什么方法或字符在电子邮件和标准html页面上正确地看到它?我不想用逗号列出项目。客户需要列出它。

您是否更改了电子邮件的标题,以便电子邮件客户端将其理解为html文档而不是常见的文本格式?

$headers .= "MIME-Version: 1.0'r'n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1'r'n";

添加内容标题会使电子邮件看起来像html页面,但只是一封电子邮件,这样客户就可以查看风格化的电子邮件

编辑:一些电子邮件客户端不接受html作为内容类型,但大多数主要的客户端都接受

在电子邮件和网站上查看时使用nl2br PHP函数。

我找到了一个关于"serialize"的教程。

这是一种将复选框选择存储在数据库中的方法。遵循用户友好的教程。http://evolt.org/node/60222/

然后,在教程向print $variable.", ";显示的地方,我将其设置为print $variable."<br />";,以便在html页面上换行。在它向客户发送电子邮件收据的页面上,我制作了print $variable."'n";,它似乎正在处理电子邮件。

注意:一定要遵循教程并取消序列化,否则你会得到看起来混乱的代码,并认为出了问题。还可以使用循环来拉出每个复选框项目。