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?
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.
If you want to post an array you must use another notation: foreach ($postvalue as $value){ <input type="hidden" name="result[]" value="$value."> }
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()
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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With