我声明数组,向数组添加元素以及将方法应用于String()的方法的组合不起作用。基本上我在textvariables中输入一定数量(1到5之间)的值:fontVorto1,fontVorto2,fontVorto3 .........在文档的html部分。 当我决定将剩余的textelements留空时,我点击一个按钮,通过以下函数将它们分配给一个数组:
function difinNombroFv () {
var fontVortoj = new array();
fontVortoj[0] = document.getElementsByName("fontVorto1")[0].value;
fontVortoj[1] = document.getElementsByName("fontVorto2")[0].value;
fontVortoj[2] = document.getElementsByName("fontVorto3")[0].value;
……………….
将它们放在一个字符串中:
x = fontVortoj.toString();
document.getElementsByName("fontVorto")[0].value = x;
(不需要额外的变量x)使我能够将它们发送到下一个文档,我希望用
来反序列化它们$fontVortoj = unserialize($_POST["fontVorto"]);
我通过插入一个警告(x)来测试方法toString(),但结果是我得到的x只是“fontVorto1”的值。 我遇到了使用JSON,jQuery等的解决方案,但我从未使用过那些“语言”,只使用HTML,JavaScript,PHP。
由于这个简单的问题,我的圣诞节会被破坏吗?>)?
答案 0 :(得分:0)
显然我开始误解了这个问题。
要序列化误入歧途,您可以使用.join()
默认情况下,它会为您提供以逗号连接的值。
要反序列化,请使用.split()
如果您的值中可能有逗号,请选择更精细的字符串进行加入:
var ar = ["a", "b"];
var serialized = ar.join("|"); // "a|b"
var deserialized = serialized.split("|"); //["a", "b"]
您用于加入和分割的字符串可以是您想要的长度。
如果您希望完全覆盖任何值,那么您需要查看JSON.stringify()
& JSON.parse()
。但这有浏览器兼容性问题。
答案 1 :(得分:0)
需要注意的几件事: 1. var fontVortoj = new array(); 。这里新的array()不正确。它应该是:
var fontVortoj = new Array();
现在如果你调用fontVortoj.toString(),那么它将转换数组并返回一个字符串,其中数组元素用逗号分隔。
你可以使用“爆炸”功能从php中的字符串重建数组。