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

时间:2012-07-14 07:04:41

标签: php javascript line-breaks

我正在使用下面的代码在MySQL数据库中存储复选框项。第三行是我需要在每个项目之间放置换行符的地方。我尝试了<br><br />,即使它在标准页面的屏幕上看起来很棒,它实际上也会在电子邮件收据中显示<br><br /> html而不是换行。

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

在我的javascript中发送我一直在使用的电子邮件\ n在电子邮件中进行换行,它完美无缺。

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

3 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:1)

在电子邮件中使用\ n,在网站上查看时使用nl2br PHP函数。

答案 2 :(得分:0)

我找到了一个关于“序列化”的教程。

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

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

注意:请务必遵循教程并反序列化,否则您最终会看到混乱的代码,并认为出现了问题。还可以使用循环来拉出每个复选框项。