所以我正在开发一个网页,该网页从 html 中的日期元素生成一个 javascript 数组。
该数组本身工作正常,我可以使用如下命令将其打印到网页:
document.getElementById("demo").innerHTML = week[0];
访问 javascript 中生成的“week”数组并将其粘贴到网页上的 HTML span 元素中。
但是,这是一个使用用户输入到页面的数据发送电子邮件的网页,虽然我能够从用户那里获取所有其余数据,但我不确定如何获取来自此 javascript 数组的电子邮件数据。
电子邮件当前使用带有 php 变量的 HTML 进行格式化。我考虑过使用 php 数组,但我查找的每个解决方案似乎要么适用于不同的情况,要么太复杂,无法剖析和重新调整用途。
所以我需要的是类似以下之一的解决方案:
-能够将此 javascript 数组复制到 php 数组中,然后我可以访问该数组以获取电子邮件。
-能够在电子邮件的 HTML 中访问此 javascript 数组
这全部包含在服务器上的 php 文件中(HTML 标记、javascript 函数和 php)。
谢谢,
迈克尔
编辑:我找到了这个帖子:Pass Javascript Array -> 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 库或简单的正则表达式)。您可以使用 myArrayToSend.join(";") 代替 JSON.stringify,然后使用 pho 中的 split 方法来“反序列化”该字符串。
关于javascript - 如何访问使用 PHP/HTML 发送的电子邮件的 javascript 数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26305265/