Javascript - 在隐藏字段中存储对象数组
Javascript - Storing array of objects in hidden field
我需要在隐藏字段中存储一些输入,所以当我打印 post-请求时,我得到:
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';
参考
更好的方法是为数组中的每个值附加一个新的表单数据。
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
<form action="./post-request.php" method="post" id="myform">
<input type="hidden" name="elems[]" />
<button type="submit" name="myarray">SEND</button>
</form>
PHP
<?php
if(isset($_POST['myarray']) {
print_r($_POST['elems']);
}
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);
对于简单的字符串数组,只需相应地使用 html 名称标签:
<input name="input_hidden_field[]"/>
这只会连接输入中的值,并在检索时返回一个数组
$('name="input_hidden_field[]"']).val()
我需要在隐藏字段中存储一些输入,所以当我打印 post-请求时,我得到:
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';
参考
更好的方法是为数组中的每个值附加一个新的表单数据。
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
<form action="./post-request.php" method="post" id="myform">
<input type="hidden" name="elems[]" />
<button type="submit" name="myarray">SEND</button>
</form>
PHP
<?php
if(isset($_POST['myarray']) {
print_r($_POST['elems']);
}
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);
对于简单的字符串数组,只需相应地使用 html 名称标签:
<input name="input_hidden_field[]"/>
这只会连接输入中的值,并在检索时返回一个数组
$('name="input_hidden_field[]"']).val()