1

I want to use input type hidden value which is array to .js file for select2 checkbox.

Php form

 <input type="hidden" name="post_array" id="post_array" value="<?php print_r($post_ids); ?>">

Output:

Array
(
    [0] => 25171
    [1] => 25163
)

Value I am trying to fetch in jquery with separate .js file

var test = $('#post_array').val();
alert(test);

Output is same as php output:

Array
(
    [0] => 25171
    [1] => 25163
)

I want to use array values here.

$("#slider_post").val(["25171"]).trigger('change.select2');

How can i replace .val(["25171"]) with php array values?

1 Answer 1

3

What you need is to find a common format which both languages can understand, the most commonly used format used for these two languages to communicate is JSON, as such, you can do the following:

In your PHP file, you can define the JavaScript variable:

<?php

?>

<script>
let my_array = JSON.parse('<?= json_encode($my_array) ?>');
</script>

<?php
// php code...

?>

As per Jon Stirling's comment:

The first option will only work if:

a) the JS file in included afterwards,

or b) the code in the js file run in a way that it runs after the document has loaded

or, using your method, you need to encode the as a JSON string via PHP then parse it as JSON in JavaScript:

 <input type="hidden" name="post_array" id="post_array" value="<?= json_encode($post_ids); ?>">

Then,

var test = JSON.parse($('#post_array').val());

Reading Material

json_encode

JSON.parse

Sign up to request clarification or add additional context in comments.

4 Comments

Just a note for OP, the first option will only work if a) the JS file in included afterwards, or b) the code in the js file run in a way that it runs after the document has loaded
let my_array = <?= json_encode($my_array) ?>; also works, eliminating the need for JSON.parse().
@Script47 why? Surely an unquoted json_encode output is a valid JavaScript object?
@user7290573 you are quite correct, my mistake, I misunderstood what you meant.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.