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

如何访问使用PHP/HTML发送的电子邮件的javascript数组中的元素,javascript,php,html,arrays,email,Javascript,Php,Html,Arrays,Email,因此,我正在开发一个网页,该网页从html中的date元素生成javascript数组 该阵列本身工作正常,我可以使用如下命令将其打印到网页: document.getElementById("demo").innerHTML = week[0]; 访问javascript中生成的“week”数组并将其粘贴到网页上的HTML span元素 然而,这是一个使用用户输入到页面的数据发送电子邮件的网页,虽然我能够从用户那里获取所有其余数据,但我不确定如何从该javascript数组中获取电子邮件的数

因此,我正在开发一个网页,该网页从html中的date元素生成javascript数组

该阵列本身工作正常,我可以使用如下命令将其打印到网页:

document.getElementById("demo").innerHTML = week[0];
访问javascript中生成的“week”数组并将其粘贴到网页上的HTML span元素

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

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

所以我需要的是一个解决方案,如下所示:

-能够将此javascript数组复制到php数组中,然后我就可以访问该数组进行电子邮件访问

-能够在电子邮件的HTML中访问此javascript数组

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

谢谢,

迈克尔

编辑:我找到了这个线程: 并使用以下代码尝试了他们的解决方案:

Javascript:

JSON.stringify(week);
PHP:


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

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

//编辑:下面是您可以使用的js脚本示例


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

我想要的是在指定点将javascript数组的各个索引处的值打印到电子邮件中。我以前听过类似于您的解决方案,但我也不知道如何实现它。好吧,我在javascript中尝试了以下方法:“var arrayField=document.querySelector(“[name=jsArray]”);和“arrayField.value=JSON.stringify(week)”,我在chrome控制台中遇到了以下错误:“Uncaught TypeError:无法将“arrayField.value”行的属性“value”设置为null。请查看JSFIDLE示例。jsArray是表单字段的名称(发布到PHP脚本中的表单)。出现此错误的原因是您的表单中根本没有该字段。添加具有该名称的字段应该可以解决此问题。您要查找的是什么?嗯,我不确定。我对此进行了讨论并使用了:“JSON.stringify(week);在javascript和:“$datesOfWeek=json_decode($_POST['jsondata']);“稍后在php中,但每当我尝试打印任何数组时,都没有任何结果。我认为您在POST中犯了错误。尝试将您的数组替换为jsondata。好吧,我尝试了,但它仍然不起作用。它发送电子邮件和所有内容,但该元素应该打印的位置没有任何内容。您是如何使用它进行打印的?”?
$datesOfWeek = json_decode($_POST['week']);
var myArrayToSend = ["val1", "val2"]
var arrayField = document.querySelector("[name=jsArray]");
arrayField.value = JSON.stringify(myArrayToSend)