Javascript – 在隐藏字段中存储对象数组

我需要在隐藏字段中存储一些输入,所以当我打印后请求时,我得到:

Array ( [0]=>1 [1]=>2 [2]=>3 ) 

我已经尝试过:

 var elems = []; elems.push['1']; elems.push['2']; elems.push['3']; $('#input_hidden_field').val(elems); 

但它不起作用,任何人都可以帮助我吗?

您可以将数组解析为JSON字符串以存储它:

.push()是一个函数,因此它需要()而不是[]数组语法。

 var elems = []; elems.push('1'); elems.push('2'); elems.push('3'); $('#input_hidden_field').val(JSON.stringify(elems)); //store array var value = $('#input_hidden_field').val(); //retrieve array value = JSON.parse(value); 

要创建对象,只需更改elems的定义和值的存储:

 var elems = {}; elems[0] = '1'; elems[1] = '2'; elems[2] = '3'; 

演示

参考

.stringify()

.parse()

更好的方法是为数组中的每个值附加一个新的formdata。

JS

 var elems = []; elems.push['1']; elems.push['2']; elems.push['3']; var fd = new FormData(document.getElementById("myform")); for (var i = 0; i < elems.length; i++) { fd.append('elems[]', elems[i]); } 

HTML

 

PHP

  

JS

 var elems = []; elems.push['1']; elems.push['2']; elems.push['3']; $('#input_hidden_field').val(JSON.stringify(elems)); 

PHP

 $elems = json_decode($_POST['hidden_input_name'], true);