0

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

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

在我的 javascript 发送电子邮件中,我一直在使用 \n 在电子邮件中进行换行,并且效果很好。

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

4

3 回答 3

3

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

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

添加内容标题使电子邮件的行为类似于 html 页面,但只是一封电子邮件,因此客户端可以查看风格化的电子邮件

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

于 2012-07-14T07:11:44.113 回答
1

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

于 2012-07-14T07:06:39.740 回答
0

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

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

然后,在教程向我展示的地方,print $variable.", "; 我做了它,print $variable."<br />";以便它会在 html 页面上给出换行符。在它向客户发送电子邮件收据的页面上,我制作了它print $variable."\n";似乎正在处理电子邮件。

注意:请务必按照教程进行反序列化,否则您最终会看到看起来混乱的代码并认为出了点问题。还使用循环将每个复选框项目拉出。

于 2012-07-14T07:27:12.753 回答