Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript - Storing array of objects in hidden field

I need to store some input in a hidden field, so when I print the post-request, I get:

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

I already tried:

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

But it does not work, anybody could help me with this?

like image 280
Adam Sasin Avatar asked Mar 16 '15 11:03

Adam Sasin


People also ask

Can you store objects in an array in JavaScript?

With an array, you store a collection of elements you can access by their position (or index). Objects take that concept further by providing a way to structure related data that's easy to read and retrieve using key/value pairs. It's common to combine the two by creating an array of objects.

How do you pass an input hidden array?

If you want to post an array you must use another notation: foreach ($postvalue as $value){ <input type="hidden" name="result[]" value="$value."> }


2 Answers

You can parse your array into a JSON-string to store it:

.push() is a function, therefore it needs () and not the [] array-syntax.

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); 

To create an object just change the definition of elems and the storage of the values:

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

Demo

Reference

.stringify()

.parse()

like image 174
empiric Avatar answered Sep 20 '22 10:09

empiric


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); 
like image 43
K15.Multik Avatar answered Sep 22 '22 10:09

K15.Multik