首页 > 解决方案 > 将数组打印到电子邮件

问题描述

我在让我的 php 代码获取我创建的数组时遇到问题:

$size = array(
  $_POST['wyxs'],
  $_POST['wys'],
  $_POST['wym'],
  $_POST['wyl'],
  $_POST['wyxl'],
  $_POST['was'],
  $_POST['wam'],
  $_POST['wal'],
  $_POST['waxl']
);

并将其作为可用数据放入从服务器发送给我的电子邮件中。截至目前,电子邮件只是说Size: Array

这是填充电子邮件内容的位:

$message = "You have received a new message from your website's contact form.\n\n"
  . "Here are the details:\n
    \nName: $name\n
    \nEmail: $email\n
    \nSize(s): $size\n
    \nPackage(s): $package";

我相信我需要使用json_encode(),但我不知道该放在哪里。我在这里看到了输出为 txt 文件的答案,但这不是我想要的。

错误日志报告:

PHP 注意:第 58 行 /home/bc8gq1bc8v7v/public_html/Orderscript.php 中的数组到字符串转换

其中第 58 行是该行"\nSize(s): $size\n"

我试过把这json_encode()条线放在变量定义线下面。还尝试放置"\nSize(s)"在线内。都没有奏效。

预期:电子邮件阅读Size(s): 7 yxs

结果:电子邮件读取Size(s): Array

编辑: 7 是任意的。该值可以是客户在网站上针对任何给定尺寸/颜色选择的衬衫输入的任何数字 0-10。

编辑 2:参考网站 www.harbourgraphicsfl.com/dcecubs,html

编辑 3:在花了一整天盯着代码之后,我忘了把 .html 放在上面链接的末尾。

标签: phphtml

解决方案


您可以使用

$size = json_encode(array($_POST['wyxs'],$_POST['wys'],$_POST['wym'],$_POST['wyl'],$_POST['wyxl'],
                          $_POST['was'],$_POST['wam'],$_POST['wal'],$_POST['waxl']));

然后,电子邮件将包含以下内容:

Size(s): ["foo","bar","baz",...]

或者你可以使用implode()

$size = implode(", ", array($_POST['wyxs'],$_POST['wys'],$_POST['wym'],$_POST['wyl'],$_POST['wyxl'],
                            $_POST['was'],$_POST['wam'],$_POST['wal'],$_POST['waxl']));

电子邮件将包含:

Size(s): foo, bar, baz, ...

推荐阅读