使用JavaScript将数组发送到下一页

时间:2013-12-24 19:00:16

标签: javascript arrays serialization

我声明数组,向数组添加元素以及将方法应用于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。

由于这个简单的问题,我的圣诞节会被破坏吗?>)?

2 个答案:

答案 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();
  1. 现在如果你调用fontVortoj.toString(),那么它将转换数组并返回一个字符串,其中数组元素用逗号分隔。

  2. 你可以使用“爆炸”功能从php中的字符串重建数组。

  3. 您可以使用“split”功能从javascript中的字符串重建数组。