如何访问用PHP/HTML发送的电子邮件的javascript数组中的元素

How to access elements from a javascript array for an email sent with PHP/HTML

本文关键字:电子邮件 javascript 元素 数组 HTML 何访问 访问 PHP      更新时间:2023-09-26

所以我正在开发一个网页,它从html中的date元素生成一个javascript数组。

这个数组本身运行良好,我可以使用这样的命令将其打印到网页上:

document.getElementById("demo").innerHTML = week[0];

访问javascript中生成的"周"数组,并将其粘贴到网页上的HTMLspan元素中。

然而,这是一个使用用户输入到页面的数据发送电子邮件的网页,虽然我能够从用户那里获得所有其他数据,但我不确定如何从该javascript数组中获取电子邮件的数据。

该电子邮件目前使用带有php变量的HTML进行格式化。我曾想过使用php数组,但我查找的每一个解决方案似乎要么针对不同的情况,要么过于复杂,无法进行剖析和重新调整用途。

所以我需要的是一个像下面这样的解决方案:

-将这个javascript数组复制到php数组中的能力,然后我可以访问该数组以获取电子邮件。

-在HTML中访问此javascript数组的能力,用于电子邮件

这些都包含在服务器上的php文件中(HTML标记、javascript函数和php)。

谢谢你,

Michael

编辑:我找到了这个线程:传递Javascript数组->PHP并用这个代码尝试了他们的解决方案:

Javascript:

JSON.stringify(week);

PHP:

$datesOfWeek = json_decode($_POST['week']);

但是,每当我尝试访问数组的元素并在电子邮件中打印出来时,这些元素都不会打印出来。

我不确定你到底想要实现什么,但如果你想从js(在客户端上)将数据和表单数据一起发送到php脚本(在服务器上),你应该简单地序列化你的数组,并将其作为附加(隐藏)表单字段的值。在php脚本中,您可以以某种方式反序列化该字段的值(这取决于您选择的格式)

//编辑:下面是可以使用的js脚本示例http://jsfiddle.net/zyt2kcmv/

var myArrayToSend = ["val1", "val2"]
var arrayField = document.querySelector("[name=jsArray]");
arrayField.value = JSON.stringify(myArrayToSend)

在服务器端,您只需要反序列化$_POST["jsArray"]的值(使用json或简单regex的库)。您可以使用myArrayToSend.join(";")代替JSON.stringify,然后在pho中使用split方法来"反序列化"该字符串。